在这部分查询中:
. . . WHERE col <> 10
它匹配除10
和NULL
之外的所有内容。虽然我想匹配除10
之外的所有内容。那么如何排除NULL
呢?
答案 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
表示空值