萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql 實現按 where in () 中的順序排序,用find_in_set() 函數

mysql 實現按 where in () 中的順序排序,用find_in_set() 函數

本文章來為各位介紹一篇關於mysql 實現按 where in () 中的順序排序,用find_in_set() 函數的教程,希望此教程能夠對各位有所幫助。

select * from table where id in ('783',' 769',' 814',' 1577',' 1769') 
order by find_in_set( id, '783, 769, 814, 1577, 1769' ) 
 
查出來:
 
769
1577
814
1769
783
 
為什麼不是 783 769 814 1577 1769 的順序?
注意:經查找後原因出在find_in_set裡面,如果find_in_set的第二個參數中有空格將導致順序亂掉,因為mysql查詢之前不會給你trim空格符。
 
so...
去空格後:
 
select * from table where id in ('783',' 769',' 814',' 1577',' 1769') 
order by find_in_set( id, '783,769,814,1577,1769' ) 
 
注意只是去掉了

'783,769,814,1577,1769' 中的空格
 
再查出來:
 
783
769
814
1577
1769
 
至此我們實現用where in + find_in_set 的排序,find_in_set 還可實現多條件排序 試試哦

copyright © 萬盛學電腦網 all rights reserved