美文网首页
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