lavarel 学习之旅

2019-03-21

2019-03-21  本文已影响0人  路西法Doom

场景:

之前在项目中遇到这样的问题,今天又遇到了,查了一些资料,记录一下

我在查询数据中,按照某个状态排序的时候,我的状态实际值是: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');

上一篇 下一篇

猜你喜欢

热点阅读