有時候我們需要按照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,')
分享一個SQL,讓in的查詢結果按順序返回結果:SELECT * FROM `pd_customgroup` WHERE `gid` in(2732,2734,2733,99758,2735,109264) order by field(gid, 2732,2734,2733,99758,2735,109264)