MySQL 根据值对列进行排序
MySQL order columns based on value
我在 table 中有多行,它们有 status
和 edited
列。 status 的值可以是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
我可以在一个查询中执行此操作还是需要单独执行查询?
提前致谢。
您应该使用 Order By Case 查询
语法
order By
CASE
WHEN status =0 THEN 0
...
END DESC
也检查此查询以获得排序的输出:
SELECT * FROM test ORDER BY FIELD(status, 0, 1)DESC, FIELD(status, 2, 3)ASC, edited ASC
我在 table 中有多行,它们有 status
和 edited
列。 status 的值可以是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
我可以在一个查询中执行此操作还是需要单独执行查询?
提前致谢。
您应该使用 Order By Case 查询
语法
order By
CASE
WHEN status =0 THEN 0
...
END DESC
也检查此查询以获得排序的输出:
SELECT * FROM test ORDER BY FIELD(status, 0, 1)DESC, FIELD(status, 2, 3)ASC, edited ASC