美文网首页
mysql按照依据固定值排序

mysql按照依据固定值排序

作者: 缓慢移动的蜗牛 | 来源:发表于2019-03-28 11:32 被阅读0次

表结构

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;

相关文章

网友评论

      本文标题:mysql按照依据固定值排序

      本文链接:https://www.haomeiwen.com/subject/dgofbqtx.html