SQL不等于查询不按预期返回行

时间:2017-02-03 10:41:06

标签: mysql sql

我在数据库中有一个表格,如下所示(parent_id是同一个表的fk):

+----+-----------+---------+
| id | parent_id | enabled |
+----+-----------+---------+
|  1 | null      |       1 |
|  2 | 1         |       1 |
|  3 | null      |       1 |
+----+-----------+---------+

查询:

SELECT * FROM category WHERE parent_id = 1

按照我的预期成功返回行,但是

SELECT * FROM category WHERE parent_id != 1

什么都不返回。

1 个答案:

答案 0 :(得分:3)

关于NULL值的正确查询如下:

SELECT * FROM category
WHERE parent_id IS NULL OR parent_id != 1

如果您尝试检查NULL字段是否为!=值,则返回false(精度未知)