我正在尝试查询mysql数据库中的某行,其中某列的值为null,这是我的查询:
SELECT * FROM `mytable` WHERE mycolumn=null
实际上我使用布尔列作为三向开关,其中0,1和null意味着用于不同的结果。
上面的查询返回一个零结果集,如果我删除了where mycolumn=null
的东西,它返回右边的结果,其中一些行具有指定列的空值。
答案 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空值转换为其他内容。