MySQL Select 語句中「IN」子句的有序結果
使用「IN」子句查詢大表中的特定記錄時,預設結果順序可能不一致。若要以與「IN」子句中的值相同的順序取得結果,必須考慮替代方法來覆寫預設行為。
一種選擇是利用 FIELD 函數。此函數採用兩個參數:第一個是要排序的列,第二個是依所需排序順序的逗號分隔值清單。透過在查詢中包含 ORDER BY FIELD(column, value) 子句,結果將根據值清單中指定的值順序進行排序。
例如,以下查詢檢索ID 依照「IN」子句中指定的順序排列的記錄:
SELECT * FROM your_table WHERE id IN (5,2,6,8,12,1) ORDER BY FIELD(id,5,2,6,8,12,1);
此處,FIELD 函數根據值的順序對「id」列進行排序(5、2、6、8、 12, 1).即使對於具有數百萬行的大型資料集,結果也會按指定的順序傳回。
以上是如何對 MySQL 中「IN」子句的結果進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!