我有这样的数据,它有更多的列,不仅低于两列:
id | s_type
1 | ACTIVE
2 | PENDING
3 | UPDATE
4 | ACTIVE
5 | PENDING
6 | UPDATE
我使用按 ASC、DESC 排序,但我想显示自定义订单的数据,我想将其显示为我的自定义订单(不仅是升序或降序):首先要查看所有待定,然后所有事件,然后所有更新 s_type
id | s_type
1 | PENDING
2 | PENDING
3 | ACTIVE
4 | ACTIVE
5 | UPDATE
6 | UPDATE
我如何显示单个查询
最佳答案
试试这个:
SELECT *
FROM yourtable
ORDER BY field(s_type, 'PENDING', 'ACTIVE', 'UPDATE'), id
或者使用CASE WHEN
SELECT *
FROM yourtable
ORDER BY CASE s_type WHEN 'PENDING' THEN 1
WHEN 'ACTIVE' THEN 2
WHEN 'UPDATE' THEN 3 END, id
关于mysql 通过在同一个表上查询自定义顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38366555/