以前很是糾結一個問題就是IN查找出來的值怎么排序呢,后來gg,bb了一會發現其實mysql in排序很簡單,下面我整理一下相關實例供大家參考.
假如你一個表如下所示:
- id name
- 1 張三
- 2 李四
- 3 王五
我們一般查詢多條數據的時候,條件一般是某個區間,如:>, <, between and, IN,代碼如下:
SELECT * FROM table_name WHERE id IN (2,1,3);
上面這條SQL是查詢id是2,1,3的數據,假如你只是想查詢出來數據而已,則沒有什么問題,但你想排序方面也有要求的話,你會發覺,那條SQL查出來的數據是這樣的.
- id name
- 1 張三
- 2 李四
- 3 王五
就是說,并沒有按2, 1, 3這樣的ID順序來排,假如你要按你IN里面的順序來排的話,SQL應該改成這樣,代碼如下:
SELECT * FROM table_name WHERE id IN ( 2,1,3 ) ORDER BY FIND_IN_SET( id, '2,1,3' )
結果是:
- id name
- 2 李四
- 1 張三
- 3 王五
這個用法可以延伸很多…
新聞熱點
疑難解答