2019-03-21

作者: 路西法Doom | 来源:发表于2019-03-21 10:56 被阅读0次

场景:

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

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

相关文章

网友评论

    本文标题:2019-03-21

    本文链接:https://www.haomeiwen.com/subject/xstqvqtx.html