使用複雜的WHERE 子句時,通常需要將一個欄位或一組欄位與值清單進行比較。在比較元組的情況下,有多種選項可用。
有硬編碼值的 IN 子句
一種方法是在 IN 子句中使用硬編碼值。但是,這對於大型表來說效率較低,因為每筆記錄都需要字串連接和轉換。
使用 VALUE 子句(標準 SQL)
標準的更有效率選項SQL-92 資料庫在 IN 運算子內使用 VALUES 子句。這涉及到將元組列表括在括號中並添加 VALUES 關鍵字。
SELECT * FROM mytable WHERE (group_id, group_type) IN ( VALUES ('1234-567', 2), ('4321-765', 3), ('1111-222', 5) );
資料庫相容性
需要注意的是,並非所有 SQL 都支援此語法產品。從 SQL Server 2022 開始,此功能被認為是計劃外的。然而,PostgreSQL 和 SQLite 確實支援這種語法。
以上是如何有效比較 SQL 的 IN 子句中的元組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!