在MySQL「IN」查詢中保留順序
在MySQL 中,「IN」查詢結果中的行順序通常與主鍵或任何定義的索引。但是,此行為可能不遵守查詢中指定的順序。要保留所需的順序,請考慮以下解決方案:
使用FIELD() 進行自訂排序:
FIELD() 函數計算給定值在以逗號分隔的值列表。透過在 ORDER BY 子句中使用此函數,您可以指定所需的結果順序。例如:
SELECT * FROM foo f WHERE f.id IN (2, 3, 1) ORDER BY FIELD(f.id, 2, 3, 1);
在此修改後的查詢中,FIELD() 的參數清單表示所需的順序:2、3 和 1。因此,結果將按以下順序顯示:
id | name |
---|---|
2 | second |
3 | third |
1 | first |
與原始查詢不同,此修改保證了指定的順序,在從表中檢索資料時提供更大的靈活性並確保結果與您的匹配期待。
以上是如何保證 MySQL IN 查詢的順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!