[英]Order by VARCHAR value in MySQL
我有一个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,该怎么办? 可能吗?
如果我理解正确,这就是你需要的:
SELECT * FROM `Table` ORDER BY FIELD(status, 'SUBMIT', 'CANCEL', 'UPDATE');
您可以更改列值的顺序以符合您的需求。
这是测试: http : //sqlfiddle.com/#!2 / d1885 / 3
对于你的情况::
Select status from table group by status
将给出你需要的结果
当您搜索mysql自定义排序顺序时,您会发现很多示例。 其中一个是order by case
select *
from mytable
order by case status when 'SUBMIT' then 1
when 'CANCEL' then 2
when 'UPDATE' then 3
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.