MySQL查询包含NULL值的列的奇怪行为

时间:2014-10-30 11:34:46

标签: mysql

我的查询是

SELECT partnumber, side FROM crpt_admin_orders_partnumbers
WHERE order_id = 198 AND side != 'B'

所以在侧栏中预期值为NULL, 'A', 'B'。我需要获取所有Null'A'条记录,但此查询不会返回任何结果。

如果我跑

SELECT partnumber, side FROM crpt_admin_orders_partnumbers
WHERE order_id = 198 AND side is NULL

然后它返回2条记录。

造成这种情况的可能原因是什么?什么是解决方案。提前致谢

1 个答案:

答案 0 :(得分:2)

你需要专门测试NULL,你不能使用数学运算符。

http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html

  

在您习惯之前,NULL值可能会令人惊讶。从概念上讲,NULL表示“缺少未知值”,并且与其他值的处理方式略有不同。