我有一个这样的表“ 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。看来这是错误的。
为什么会这样呢?
NULL不等于任何东西。您需要明确接受null:
NULL
where fk <> 4 or fk is null;
有关处理的更多信息,请参见使用NULLNULL。