使用UNION ALL 的順序選擇性查詢
問題:
在資料庫表中找出單行逐漸減少搜尋條件。例如:
SELECT * FROM image WHERE name LIKE 'text' AND group_id = 10 LIMIT 1
如果沒有得到結果,則執行:
SELECT * Fname ROMage WHERE LIKE 'text' LIMIT 1
如果仍然沒有結果,執行:
SELECT * FROM image WHERE group_id = 10 LIMIT 1
這個過程可以用單一執行嗎表達式?
解法:
SELECT * FROM image WHERE name = 'name105' AND group_id = 10 UNION ALL SELECT * FROM image WHERE name = 'name105' UNION ALL SELECT * FROM image WHERE group_id = 10 LIMIT 1;
解法:
透過在 UNION ALL 鏈中加入額外的 SELECT 語句,可以將上述方法推廣到任意數量的搜尋參數。
排序的注意事項結果:由於 LIMIT 子句適用於整個結果,因此排序並不是特別有用,因為只會傳回第一行。
以上是UNION ALL with LIMIT 1 能否有效率地模擬順序查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!