MySQL:依IN() 規範的順序對結果排序
使用IN() 子句擷取資料時,維護IN( ) 子句中的順序指定值可以增強輸出的可讀性和可用性。本文探討了一種根據 IN() 函數中的值序列對結果進行排序的解決方案。
考慮以下查詢:
SELECT id, name FROM mytable WHERE name IN ('B', 'A', 'D', 'E', 'C');
此查詢傳回下列輸出,其中行的順序與IN() 子句中的順序不一致:
| 編號| 名字|
^--------^---------^
| 5 | B |
| 6 | B |
| 1 | D |
| 15 | 15 E |
| 17 | 17 E |
| 9 | C |
| 18 | 18 C |
要依照IN()| 18 | 18 C |
要依照IN()|子句中指定的順序對結果進行排序,我們可以使用FIELD 函數。 FIELD 函數將一個值作為其第一個參數,並傳回該值在剩餘參數清單中的位置。
SELECT id, name FROM mytable WHERE name IN ('B', 'A', 'D', 'E', 'C') ORDER BY FIELD(name, 'B', 'A', 'D', 'E', 'C')以下查詢使用FIELD 函數根據「名稱」的位置對結果進行排序清單中的列值('B'、'A'、'D'、'E'、'C'):
此查詢傳回以下內容輸出:
| 編號| 名字|
^--------^---------^
| 5 | B |
| 6 | B |
| 1 | D |
| 15 | 15 E |
| 17 | 17 E |
| 18 | 18 C |
如您所見,行現在按照最初在 IN() 子句中指定的順序排序。以上是如何依照 IN() 子句中指定的順序對 MySQL 結果進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!