讓sql語句不排序,按照in語句的順序返回結果


有時候我們需要按照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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM