維護MySQL「IN」查詢中的順序
當使用「IN」運算子過濾MySQL 查詢中的結果時,結果不一定與「IN」子句中指定的值的順序相符。這是因為 MySQL 預設不保證結果的順序。
要維持「IN」查詢中結果的順序,可以使用以下方法:
使用FIELD函數
FIELD函數可用於指定所需函數
SELECT * FROM foo f WHERE f.id IN (2, 3, 1) ORDER BY FIELD(f.id, 2, 3, 1);
FIELD函數可用於指定所需函數的結果順序。它採用逗號分隔的值清單作為其第二個參數,並傳回符合值在清單中的位置。例如,以下查詢將依照「IN」子句中指定的順序傳回結果:
FIELD 的參數清單可以是可變長度,讓您可以根據需要指定任意數量的值。
注意:
ORDER BY FIELD 方法適用於簡單查詢,其中「IN」子句中的值為事先知道。但是,如果值是動態的或從其他資料來源檢索的,則此方法可能不合適。以上是如何保證 MySQL 的「IN」查詢結果順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!