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

时间:2016-05-03 05:17:28

标签: mysql sql operators where-clause

在这部分查询中:

. . . WHERE col <> 10

它匹配除10NULL之外的所有内容。虽然我想匹配除10之外的所有内容。那么如何排除NULL呢?

3 个答案:

答案 0 :(得分:3)

这可以用于MySQL,

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

如果col的值为NULL,则IFNULL(col,0)会将值转换为'0'并执行比较。因此,除了10之外,您将获得所有记录。

答案 1 :(得分:2)

问题是条件col != 10(在MySQL中)意味着“col的值不是10”的行。 NULL不是值,因此NULL行不匹配。如果是这样的话,你可能会遇到问题NULL级联到逻辑的其他部分,因为它们没有使用与值相同的相等逻辑。

据我所知,在两种情况下(col IS NULL OR col != 10)执行它是正确的方法,因为MySQL逻辑要求你做两件事。 “col的值不是10的行,或col没有值的行”。

答案 2 :(得分:2)

试试这个 .... col&lt;&gt; 10 OR col IS NULL

表示空值