在MySQL「IN」查詢中保留指定的順序
使用MySQL 查詢資料時,「IN」運算子允許您根據在一組值上。但是,請務必注意,這些查詢的預設行為不會維持指定值的順序。
問題:
在以下情況下對於具有自動遞增主鍵的表,您可能會遇到這樣的情況:「IN」查詢的結果是根據主鍵而不是值的指定順序進行排序的。如果您想保留結果的順序,這可能會出現問題。
解:
要實現所需的排序,您可以使用 FIELD() 函數與 ORDER BY 子句結合使用。 FIELD() 函數根據值在其參數清單中出現的順序為值指派位置。以下是範例:
SELECT * FROM foo f WHERE f.id IN (2, 3, 1) ORDER BY FIELD(f.id, 2, 3, 1);
在此查詢中,FIELD() 的參數清單指定您希望結果顯示的順序。 ORDER BY 子句根據 FIELD() 指定的位置對結果進行排序。
說明:
FIELD() 函數指定以下位置到值:
透過使用此方法,您可以確保「IN」查詢中結果的順序與指定值的順序相符。這在您處理有序資料集或想要維護記錄之間的特定關係時特別有用。
以上是如何保留 MySQL'IN”查詢中值的順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!