Doctrine で複数の列を並べ替える 質問する

Doctrine で複数の列を並べ替える 質問する

2 つの列でデータを並べ替える必要があります (行の列番号 1 の値が異なる場合は、その列番号で並べ替え、それ以外の場合は列番号 2 で並べ替えます)

QueryBuilderクエリを作成するためにを使用しています。

orderByメソッドをもう一度呼び出すと、以前に指定した順序が置き換えられます。

最初のパラメータとして 2 つの列を渡すことができます。

->orderBy('r.firstColumn, r.secondColumn', 'DESC');

しかし、2 番目のパラメータに 2 つの順序付け方向を渡すことはできないため、このクエリを実行すると、最初の列は昇順で順序付けされ、2 番目の列は降順で順序付けされます。両方に降順を使用したいと思います。

を使用してこれを行う方法はありますかQueryBuilder? DQL を使用する必要がありますか?

ベストアンサー1

列名の直後に順序の方向を追加する必要があります。

$qb->orderBy('column1 ASC, column2 DESC');

ご指摘のとおり、複数の呼び出しorderBy 積み重ねない複数の呼び出しを行うこともできますaddOrderBy:

$qb->addOrderBy('column1', 'ASC')
   ->addOrderBy('column2', 'DESC');

おすすめ記事