MySQL:在排序中保留IN() 函數順序
使用IN() 函數檢索記錄時,可能需要保留在排序結果中將值輸入到函數中的順序。預設情況下,MySQL 根據資料庫的內部排序機制對結果進行排序。
解:
依照 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 函數在 ORDER BY 中使用條款。它確保結果的排序順序與 IN() 函數中的值相同:'B'、'A'、'D'、'E'、'C'。
效能最佳化:
雖然可以使用 FIELD 函數來實現所需的排序,但建議考慮對錶示所需排序的列建立索引 命令。透過在此列上建立索引,MySQL 可以優化排序過程,從而提高效能。
以上是如何在 MySQL 中保持 IN() 函數中的值順序進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!