mysql 根据某字段特定值排序

一、case when方式

比如:

表 :user

字段:orders (值为 1,2,3)

要求根据字段 orders 按2 -> 1 -> 3 排序

使用以下语句实现

SELECT *
FROM user
ORDER BY CASE  orders  WHEN 2 THEN 1 WHEN 1 THEN 2 WHEN 3 THEN 3 END;

二、union方式

有下图这些数据,done、process、failure三种状态,怎么用sql语句根据顺序排序,并且同样的process 状态的数据要根据date_created 倒序排,done和failure状态的根据date_created顺序排

(select * from 表名版权 where status='process' order by date_created desc)
union all
(select * from 表名 where status='done' order by date_created asc)
union all
(select * from 表名 where status='failure' order by date_created asc)

三、自定义排序

MySQL中的排序ORDER BY 除了可以用ASC和DESC,还可以自定义字符串/数字来实现排序。

格式如下:

SELECT * FROM table ORDER BY FIELD(status,1,2,0);

这样

你可能感兴趣的:(mysql,mysql多条件排序)