在开发过程中可能会遇到,如何想把查询到的结果集按指定顺序进行排序,就可以使用FIELD函数
- FIELD(str,str1,str2,str3):
其中str是字段名称,可以对SQL查询的结果集按照指定顺序排序,字段str按str1,str2,str3的顺序返回查询到的结果集
案例:查询的结果将推送状态(0:正常 1:优推 2:下架)按优推,正常,下架排序,状态如果相同按更新时间降序
select 查询的数据 from 查询的表 where 查询的条件 order by FIELD(push_status,1,0,2)
在mybatisPlus中可以使用
queryWrapper.last("order by FIELD(push_status,1,0,2");
举例:
SELECT t_enterprise.name,t_enterprise.audit_status FROM t_enterprise WHERE delete_flag = 0 order by audit_status
SELECT t_enterprise.name,t_enterprise.audit_status FROM t_enterprise WHERE delete_flag = 0 order by FIELD(audit_status,1,0,2)
上面两个sql语句都进行了拍寻,一个是默认升序,一个使用了FIELD函数
结果如下图
第一个sql
第二个sql