MySql 自定义排序

1.自定义排序语法:

 SELECT * from table_name ORDER BY FIELD(`str`,str1,str2,str3,...)

str: 字段名,
str1,str2,str3: 自定义排序的数值

2. 自定义排序-全部值

自然排序: 1,2,3,4,5 , 自定义排序: 5,3,1,4,2

SELECT `status`,create_time from t_order ORDER BY FIELD(`status`,5,3,1,4,2), create_time DESC;
image.png

3: 自定义排序-部分值

先排 5,3 的数据,1,2,4的数据按照时间来

SELECT `status`,create_time from t_order ORDER BY FIELD(`status`,3,5) DESC, create_time DESC;
image.png

4:自定义排序 - 分级排序

把 5,3 分 一级, 1,2,4为一级, 每级按时间排序; 也可以加一个字段实现下面的效果;

SELECT `status`,create_time from t_order ORDER BY CASE`status` WHEN 5 THEN 1 WHEN 3 THEN 1 ELSE 2 END, create_time DESC;

image.png

你可能感兴趣的:(MySql 自定义排序)