繁体   English   中英

在MySQL中按VARCHAR值排序

[英]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

SQL小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM