我有一个表中的单个列,看起来像这样:对NULL列使用WHERE子句时,mySQL select查询不返回结果。
(场为NULL我使用QTODBC7.0执行SQL查询,而这个应用使得NULL字段查询显示为空白。结果,而不是显示文本“NULL”)
我有一个简单的SQL查询,如下所示:
select * from table where field3 <> 'randomstring'
我希望查询返回的所有字段,其中场3不等于'randomstring'的值。
'field3'这一列不等于'randomstring'的值,因此它应该在查询中返回。
一个奇怪的事情发生了:
上述查询返回任何内容!
场3等于NULL,因此,它不等于因此“randomstring”,该行应该在我的查询返回的,但事实并非如此。
我做了一些测试,并发现,这是当field3为NULL但不是如果field3等于空白字符串(不为NULL)时引起的。
当field3中可能有NULL值时,如何使select语句正常工作?
使用'栏3 IS NULL'检查null值
在这样的查询条件进行评估,以
true
如果字段3的值是NULL 。 – jarlh一个选项是['<=>'](https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_equal-to)与操作符相等的NULL安全。 – wchiquito