0

可能重复:
为什么 column = NULL 不返回任何行?

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

SELECT * FROM `mytable` WHERE mycolumn=null

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

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

4

3 回答 3

4

Column = null 将始终给出 null

尝试列为空

SELECT * FROM `mytable` WHERE mycolumn is null
于 2012-09-16T20:07:44.907 回答
1

你必须使用

SELECT * FROM `mytable` WHERE mycolumn is null

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

于 2012-09-16T20:09:24.057 回答
1

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

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

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

SELECT * FROM `mytable` WHERE mycolumn is null

...或者您可以将空值合并为其他值

于 2012-09-16T20:11:38.803 回答