Mysql SQL不相等查询未按预期返回行

Mysql SQL不相等查询未按预期返回行,mysql,sql,Mysql,Sql,我在数据库中有一个表,如下所示(parent\u id是同一个表的fk): 查询: SELECT * FROM category WHERE parent_id = 1 但是,正如我所期望的那样,成功地返回行 SELECT * FROM category WHERE parent_id != 1 不返回任何内容。有关空值的正确查询如下: SELECT * FROM category WHERE parent_id IS NULL OR parent_id != 1 如果您尝试检查是否为空,

我在数据库中有一个表,如下所示(
parent\u id
是同一个表的
fk
):

查询:

SELECT * FROM category WHERE parent_id = 1
但是,正如我所期望的那样,成功地返回行

SELECT * FROM category WHERE parent_id != 1

不返回任何内容。

有关空值的正确查询如下:

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

如果您尝试检查是否为空,则字段为!=通过一个值,它将返回always false(精度未知)

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

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

如果您尝试检查是否为空,则字段为!=通过一个值,它总是返回false(精度未知)

您应该这样做,然后您将更好地理解如何处理空值。您应该这样做,然后您将更好地理解如何处理空值。看在上帝的份上,我完全忘了您不能在空值上使用相等。我知道这是我忽略的愚蠢的事情#facepalm@Unflux:它发生了;)祝你过得愉快看在上帝的份上,我完全忘了你不能在null上使用相等。我知道这是我忽略的愚蠢的事情#facepalm@Unflux:它发生了;)祝你今天愉快