SQLのIN句で複数カラムの組み合わせを指定する
·1 分で読めます
SQLのIN句では、次のように複数カラムをまとめて指定できることを最近知った。
SELECT *
FROM your_table
WHERE (column1, column2) IN (
('value1', 'value2'),
('value3', 'value4')
);これは以下のSQLと同じ意味である。
SELECT *
FROM your_table
WHERE
(column1 = 'value1' AND column2 = 'value2')
OR
(column1 = 'value3' AND column2 = 'value4');つまり、同じ行にあるcolumn1とcolumn2が、次のどちらかの組み合わせと一致する行を取得する、という意味になる。
column1 = 'value1'かつcolumn2 = 'value2'column1 = 'value3'かつcolumn2 = 'value4'