gpt4 book ai didi

mysql - 具有 NULL 值的复合 IN 子句

转载 作者:行者123 更新时间:2023-11-29 05:26:02 26 4
gpt4 key购买 nike

我想使用 IN 子句进行搜索,因为它看起来比加载 ANDOR 更简洁。我将使用复合键进行搜索。例如,我有一个包含两列的表 table1:col1 int(12) NOT NULLcol2 varchar(15) NULL。我使用以下查询来提取数据:

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 ...

是否有更简洁的方法来执行此操作?

最佳答案

虽然不是一个好的解决方案,但你可以试试这个

SELECT 
`col1`, `col2`
FROM
`table1`
WHERE
(`col1`, `col2`) IN ((1, "ROW1"), (2, "ROW2"))
OR
(`col1` IN (2,4) and col2 is null)

关于mysql - 具有 NULL 值的复合 IN 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20215079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com