使用column = null的SQL查询返回零结果集

时间:2012-09-16 20:06:21

标签: mysql sql mysqli

  

可能重复:
  Why does column = NULL return no rows?

我正在尝试查询mysql数据库中的某行,其中某列的值为null,这是我的查询:

SELECT * FROM `mytable` WHERE mycolumn=null

实际上我使用布尔列作为三向开关,其中0,1和null意味着用于不同的结果。

上面的查询返回一个零结果集,如果我删除了where mycolumn=null的东西,它返回右边的结果,其中一些行具有指定列的空值。

3 个答案:

答案 0 :(得分:4)

Column = null将始终为null

try column is null

SELECT * FROM mytable WHERE mycolumn为null

答案 1 :(得分:1)

你必须使用

SELECT * FROM `mytable` WHERE mycolumn is null

参考:http://dev.mysql.com/doc/refman/5.1/en/working-with-null.html

答案 2 :(得分:1)

在SQL中,null的概念与 unknown 类似。那个未知的东西实际上不等于任何东西,甚至是另一个未知的东西。

出于这个原因,X = null甚至null = null将永远不会成立,因为表达式本身会计算为另一个null(意思是,如果x等于null则不知道。)

相反,您可以使用IS NULL来确定某个值是否设置为 null:

SELECT * FROM `mytable` WHERE mycolumn is null

...或者您可以将coalesce空值转换为其他内容。