您的位置:首页 > 数据库

SQL语句之按in排序

2015-06-19 10:21 337 查看
有时候我们需要按照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,','))

 

oracle写法:

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

 

sqlserver写法:

Select * From Product Where id in (1,1588,15782,9887,54)  Order By charindex(','+ id +',', ',1,1588,15782,9887,54,')

Access:
select * From 表 Where id in(1,5,3) order by instr(',1,5,3,',','&id&',')

MSSQL:
select * From 表 Where id in(1,5,3) order by charindex(','+rtrim(cast(id as varchar(10)))+',',',1,5,3,')

MySQL:
select * From 表 Where id in (1,5,3) order by instr(',1,5,3,',',CONCAT(',',id,','))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: