依預定義順序傳回查詢結果
執行 SELECT 語句時,通常會希望以特定順序擷取記錄。但是,預設情況下,MySQL 根據表的內部組織以任意順序傳回結果。
為了覆寫此預設行為並按預定義順序傳回結果,MySQL 提供了一種使用 FIND_IN_SET() 函數的方法。此函數有兩個參數:一個搜尋字串和一組值。它會傳回搜尋字串在集合中的位置,如果未找到字串,則傳回 0。
透過利用 FIND_IN_SET(),可以執行 SELECT 語句並指定所需的結果順序。例如,要以特定順序擷取ID 為7、2、5、9 和8 的記錄:
SELECT id FROM table WHERE id IN (7, 2, 5, 9, 8) ORDER BY FIND_IN_SET(id, "7,2,5,9,8");
此查詢傳回下列結果:
id --- 7 2 5 9 8
請注意ID 值依照FIND_IN_SET() 第二個參數中指定的順序傳回,無論它們在WHERE 子句中出現的順序為何。
此技術提供了一種強大的方法來控制查詢結果的順序,即使基礎表沒有明確定義的排序順序。
以上是如何使用 FIND_IN_SET() 以預先定義的順序傳回 MySQL 查詢結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!