我在表格中有多行,它们有status
和edited
列。状态值可以是0,1,2或3.以下是我的查询。
SELECT * FROM orders ORDER BY FIELD(status, 1, 0, 2, 3), edited ASC
是否可以根据状态值来订购结果:
if status = '0' => edited DESC
if status = '1' => edited DESC
if status = '2' => edited ASC
if status = '3' => edited ASC
我可以在一个查询中执行此操作,还是需要执行单独的查询? 提前谢谢。
答案 0 :(得分:2)
您应该使用Order By Case查询
语法
order By
CASE
WHEN status =0 THEN 0
...
END DESC
答案 1 :(得分:0)
检查此查询以获取已排序的输出:
SELECT * FROM test ORDER BY FIELD(status,0,1)DESC,FIELD(status,2,3)ASC,ASC编辑