1
我想使用IN
子句進行搜索,因爲它看起來比負載爲AND
和OR
s的子元素更清潔。我將使用複合鍵進行此搜索。因此,例如我有一個表table1
有兩列:col1 int(12) NOT NULL
和col2 varchar(15) NULL
。我用下面的查詢拉出來的數據:具有NULL值的複合IN子句
SELECT `col1`, `col2`
FROM `table1`
WHERE (`col1`, `col2`) IN ((1, "ROW1"), (2, "ROW2"), ...)
由於col2
可能包含NULL
值我可能有一個情況下,我需要做的:
SELECT `col1`, `col2`
FROM `table1`
WHERE (`col1`, `col2`) IN ((1, "ROW1"), (2, NULL), ...)
此查詢不會引發任何錯誤,但它不會提取(2, NULL)
的數據。有沒有辦法讓IN
子句接受這種類型的語法,還是隻是將它們作爲單獨的條件語句添加的情況?如...
SELECT `col1`, `col2`
FROM `table1`
WHERE (`col1`, `col2`) IN ((1, "ROW1"), ...) OR (`col1`=2 AND `col2` IS NULL) OR ...
有沒有更乾淨的方法去做到這一點?
肯定有很多更清潔。我會在接受之前看看其他人提出的。 –