baig772:
私は以下の構造を持つテーブルを持っています
id| name | read | status | is_assigned | created_at
1 | ABC | 0 | ordered | 0 | 2020-03-27 11:48:38
2 | XYZ | 1 | accepted | 1 | 2020-03-27 11:48:38
3 | DEF | 0 | ordered | 0 | 2020-03-25 11:48:38
4 | JKL | 1 | accepted | 0 | 2020-03-16 11:48:38
5 | GHI | 1 | on-hold | 1 | 2020-03-23 11:48:38
私は以下のように優先順位ソート順にしたいです:
- ここで、読み取り= 0
- ステータス=注文した場合は
- ここで、状態=受け入れられますが、is_assigned = 0
- 並び替え
created_at
DESC
私が持っているクエリは、のためにのみ有効であるcreated_at
とread
の列すなわち
select * from orders order by read ASC, created_at DESC
どのように私は説明したテーブルに対してソート順を上に実現し、Laravelクエリビルダでこのクエリをマッピングすることができます
TIA
GMB:
あなたは直接あなたのロジックを翻訳することができますorder by
条件は評価するMySQLの能力使用して、句0/1
の値を:
order by
(read = 0) desc,
(status = 'ordered') desc,
(status = 'accepted' and is_assigned = 0) desc,
created_at