gpt4 book ai didi

mysql - 如果字段为空,为什么 SQL "NOT IN (' val 1')"不返回?

转载 作者:行者123 更新时间:2023-11-29 01:13:03 33 4
gpt4 key购买 nike

我有这样一个查询:

Select *
FROM table1
WHERE field1 NOT IN ('value1')

如果该行的field1null,则不返回。这对我来说看起来不合逻辑,因为 null 不是“value1”,所以应该返回该行,这会导致很多错误。我知道由于某些原因它是这样工作的。它们是什么?

最佳答案

NULL 在 SQL 中不是一个值。

SELECT NULL = NULL
# => NULL
SELECT NULL != NULL
# => NULL

因此,

cause null is not 'value1'

NULL 也不是不是“value1”。 NULL 基本上是 SQL 表达“我不知道”的方式。所以它可能是“value1”,也可能不是。测试 NULL 的方法是

SELECT NULL IS NULL;
# => 1

因此,试试这个:

WHERE field1 NOT IN ('value1') OR field1 IS NULL

专门解决这个问题。

关于mysql - 如果字段为空,为什么 SQL "NOT IN (' val 1')"不返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34737906/

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