如何排除不等于运算符的 NULL?

How can I exclude NULL of not equal operator?

在这部分查询中:

. . . WHERE col <> 10

它匹配除 10NULL 之外的所有内容。虽然我想匹配除 10 之外的所有内容。那么我怎样才能排除其中的 NULL

问题是条件 col != 10(在 MySQL 中)意味着 "row where col has a value that is not 10"。 NULL 不是一个值,因此 NULL 行不匹配。如果是,您可能会遇到 NULL 级联到您逻辑的其他部分的问题,因为它们不使用与值相同的相等逻辑。

据我了解,在两种情况下 (col IS NULL OR col != 10) 执行此操作是正确的方法,因为根据 MySQL 逻辑,您要求的是两个不同的东西。 "rows where col has a value that is not 10, or rows where col has no value".

这可以用于 MySQL、

...WHERE IFNULL(col,0) <> 10

如果 col 的值为 NULL,则 IFNULL(col,0) 会将值转换为 '0' 并执行比较。因此,您将获得除 10.

之外的所有记录

试试这个 ....col <> 10 或 col IS NULL

对于空值