您的位置:首页 > 数据库

让sql语句不排序,按照in语句的顺序返回结果

2016-10-28 16:08 323 查看
有时候我们需要按照in条件里的id顺序输出结果,可sql语句在不加order by的时候是按照asc排序的,下边的sql解决按照in条件顺序的id输出查询结果

MySQL写法:

SELECT * FROM EVENT WHERE eventId IN(443,419,431,440,420,414,509) ORDER BY INSTR(‘,443,419,431,440,420,414,509,’,CONCAT(‘,’,eventId,’,’))

或者

select * from EVENT where eventId IN (3,6,9,1,2,5,8,7) order by field(eventId ,3,6,9,1,2,5,8,7);

Oracle写法:

select name from order where oderid in(111,222,333,444,555,666)order by instr(‘111,222,333,444,555,666’,orderid)

或者

select status from BUS_ROW_NUMBER order by DECODE(status , ‘01’,’1’,’02’,’2’,’03’,’3’)

sqlserver写法:

Select * From Product Where id in (1,1588,15782,9887,54) Order By charindex(‘,’+ id +’,’, ‘,1,1588,15782,9887,54,’)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql sql in语句排序