一尘不染

where子句中的NULL值

sql

我有一个这样的表“ bla”:

[id]    [name]    [fk]
1       test      4
2       foo       5
3       bar       NULL

如果我做SQL查询

SELECT * FROM bla WHERE fk <> 4

我只得到ID为2的记录。我没有ID为3的记录,其中fk为空。我以为NULL!=4。看来这是错误的。

为什么会这样呢?


阅读 120

收藏
2021-05-05

共1个答案

一尘不染

NULL不等于任何东西。您需要明确接受null:

where fk <> 4 or fk is null;

有关处理的更多信息,请参见使用NULLNULL

2021-05-05