表结构
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`status` tinyint(4) DEFAULT NULL COMMENT ' 1-未认证 2-待审核 3-审核驳回 4-待审批 5-审批拒绝 6-通过',
`create_date` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
数据
1 张三 4 2019-03-15 11:09:25
2 李四 1 2019-03-20 11:09:30
3 王五 2 2019-03-23 11:09:41
4 赵六 3 2019-03-24 11:09:44
5 马七 5 2019-03-05 11:09:46
6 angle 6 2019-03-01 11:09:50
排序要求
第一个
排序规则
1 未认证(1)
2 待审核(2)
3 待审批(4)
4 通过(6)
5 拒绝(5)
6 驳回(3)说明:
未认证的放第一位, 待审核的放第二位 ,...
语句
SELECT
*
FROM USER
ORDER BY
CASE status WHEN 1 THEN 1
WHEN 2 THEN 2
WHEN 4 THEN 3
WHEN 6 THEN 4
WHEN 5 THEN 5
WHEN 3 THEN 6
ELSE 7 END ASC,
create_date DESC;
第二个
status=6的排在第一位,其他的按照创建时间倒序排
语句
SELECT
*
FROM USER
ORDER BY
CASE WHEN status=6 THEN 1
ELSE 2 END ASC,
create_date DESC;
网友评论