MySQL按指定字段的某个指定值排序,其他值自然排序 您所在的位置:网站首页 mysql按照指定顺序排序怎么操作 MySQL按指定字段的某个指定值排序,其他值自然排序

MySQL按指定字段的某个指定值排序,其他值自然排序

2024-02-26 03:38| 来源: 网络整理| 查看: 265

简介:今日项目需求产品增加了一个需求,要求审核状态字段按照未审核优先展示,再按照创建时间倒序展示。

一、建立测试消息表并插入测试数据10条

create table message( id int auto_increment primary key not null, audit_status tinyint(2) comment '1:未审核,2:审核通过,3:审核失败', msg_content varchar(50) comment '消息内容', create_time datetime comment '创建时间', update_time datetime comment '更新时间' )comment '消息表' insert into message(audit_status,msg_content,create_time,update_time) values(3,'A',now(),null); insert into message(audit_status,msg_content,create_time,update_time) values(2,'B',now(),null); insert into message(audit_status,msg_content,create_time,update_time) values(1,'你好',now(),null); insert into message(audit_status,msg_content,create_time,update_time) values(3,'C',now(),null); insert into message(audit_status,msg_content,create_time,update_time) values(2,'D',now(),null); insert into message(audit_status,msg_content,create_time,update_time) values(3,'E',now(),null); insert into message(audit_status,msg_content,create_time,update_time) values(3,'F',now(),null); insert into message(audit_status,msg_content,create_time,update_time) values(2,'G',now(),null); insert into message(audit_status,msg_content,create_time,update_time) values(1,'我好',now(),null); insert into message(audit_status,msg_content,create_time,update_time) values(1,'都好',now(),null);

注意:数据插入的时候,一条一条插入,不要全选一起执行,否则创建时间都是一样的,按照创建时间倒序就测试不了了

二、需求分析

分析:先按照要求,审核状态字段按照未审核优先展示,期望的输出结果是

【你好,我好,都好,A,B,C,D,E,F,G】这种顺序

分析:按照  order by audit_status 一定不能实现,因为要么升序,要么降序。

可需求是要 ”未审核“状态的优先展示,其他状态的自然排序,也就是 audit_status=1 的优先展示,audit_status=2和3 的自然展示。

这里需要用到一个函数:

FIELD(s,s1,s2...)

示意:该函数是返回字符串s在s1,s2...等字符串当中的位置。等同于我们找到目标数值,在按照指定顺序排序即可

三、编写SQL

SQL如下:

select * from message order by field(audit_status,1,audit_status) asc

结果:

排序正确。

上面SQL等同于这条SQL:

select * from test order by field(status,1)desc

在加上按照create_time倒序,期望的输出结果是

【都好,我好,你好,G,F,E,D,C,B,A】这种顺序

排序正确,需求完成。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有