我有一个包含2列的表
id status
1 SUBMIT
2 CANCEL
3 UPDATE
4 CANCEL
5 SUBMIT
6 UPDATE
如果我这样做:
select * from table
我可以按照我想要使用MySQL的顺序订购结果吗? ASC将取消CANCEL,SUBMIT,UPDATE和DESC。如果我想要一个不同的订单,例如SUBMIT,CANCEL,UPDATE,该怎么办?有可能吗?
答案 0 :(得分:2)
如果我理解正确,这就是你需要的:
SELECT * FROM `Table` ORDER BY FIELD(status, 'SUBMIT', 'CANCEL', 'UPDATE');
您可以更改列值的顺序以符合您的需求。
答案 1 :(得分:0)
对于您的案例::
Select status from table group by status
将提供您需要的结果
答案 2 :(得分:0)
当您搜索mysql custom sort order时,您会发现很多示例。其中之一是order by case
select *
from mytable
order by case status when 'SUBMIT' then 1
when 'CANCEL' then 2
when 'UPDATE' then 3
end