我正在尝试从 mysql 数据库中查询某个列的值为空的行,这是我的查询:
SELECT * FROM `mytable` WHERE mycolumn=null
实际上,我使用布尔列作为三向开关,其中 0,1 和 null 意味着用于不同的结果。
上面的查询返回一个零结果集,如果我删除where mycolumn=null
东西,它返回正确的结果,其中一些行对于指定的列具有空值。
我正在尝试从 mysql 数据库中查询某个列的值为空的行,这是我的查询:
SELECT * FROM `mytable` WHERE mycolumn=null
实际上,我使用布尔列作为三向开关,其中 0,1 和 null 意味着用于不同的结果。
上面的查询返回一个零结果集,如果我删除where mycolumn=null
东西,它返回正确的结果,其中一些行对于指定的列具有空值。
Column = null 将始终给出 null
尝试列为空
SELECT * FROM `mytable` WHERE mycolumn is null
你必须使用
SELECT * FROM `mytable` WHERE mycolumn is null
参考:http ://dev.mysql.com/doc/refman/5.1/en/working-with-null.html
在 SQL 中, 的概念null
类似于unknown。未知的东西实际上不可能等于任何东西,甚至是另一个未知的东西。
出于这个原因,X = null
甚至null = null
永远不会为真,因为表达式本身的计算结果为另一个 null (意思是,不知道 x 是否等于 null。)
相反,您可以使用IS NULL
来确定一个值是否设置为null:
SELECT * FROM `mytable` WHERE mycolumn is null
...或者您可以将空值合并为其他值。