複数の列で orderBY を使用したいのですが、それらは 1 つの列のように動作する必要があります。テーブルは次のようになります。
col1 | col2
5 |
2 |
| 3
7 |
| 1
| 1
結果は次のようになります。
col1 | col2
| 1
| 1
2 |
| 3
5 |
7 |
生の SQL を使用する場合は、using のようなメソッドがありますCOALESCE
。
しかし、Doctrine QueryBuilder でこれをどのように達成できるのでしょうか?
編集:
私は次のように orderBy を試しました:
qb->orderBy("COALESCE(col1, col2)", "DESC");
そして、このように
qb->add("orderBy", "COALESCE(col1, col2) DESC");
しかし、どちらの場合も、次のエラーがスローされました。
[Syntax Error] line 0, col 700: Error: Expected end of string, got '('