场景:
之前在项目中遇到这样的问题,今天又遇到了,查了一些资料,记录一下
我在查询数据中,按照某个状态排序的时候,我的状态实际值是:0,1,2,3,4,5 而我项目需求是按 2,3,5,4,1 0排序;
问题出现了,无论是正序还是逆序 都不能满足我当前的需求,怎么办?
解决方案:
方法1:直接sql 更改状态值为想要的顺序.
order by select status case when 2 then 5 case when 2 then 4 case when 5 then 3 case when 4 then 2 case 1 case else 0 order by status asc;
方法2:利用where in 方法
具体sql如下 select * from table where status in (2,3,5,4,1 0) order by find_in_set(id,'2,3,5,4,1 0');
网友评论