根據多個列值查詢表:更聰明的方法
根據單列的一組值查詢表時,IN 子句提供了一個方便的解決方案。但是,如果您需要基於多列進行查詢,預設的 IN 子句語法可能無法滿足。
在這種情況下,您可以使用簡單高效的方法,而不是求助於複雜的聯接或子查詢:
SELECT city FROM user WHERE (firstName, lastName) IN (('a', 'b'), ('c', 'd'));
此查詢有效地檢查用戶表中每一行的firstName 和lastName 的組合是否與任何指定的元組相符。如果找到匹配項,則傳回相應的城市值。
此技術消除了對臨時表或冗長的 OR 條件的需要。它還維護 SQL 的基於集合的評估,從而實現高效且最佳化的查詢執行。
例如,考慮一個包含firstName、lastName 和 city 欄位的使用者表。給定表示(firstName,lastName)對的元組列表,您可以使用上面的查詢來檢索與這些對關聯的城市。
透過利用此方法,您可以輕鬆執行涉及多個列值的複雜查詢,而無需損害效能或資料庫資源。在傳統 IN 子句不足的情況下,它是首選且優雅的解決方案。
以上是如何有效率地根據多列值查詢表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!