试图找到返回0的列的NULL值?

时间:2011-06-03 17:52:51

标签: mysql null myisam

我的表格中有一个列有几个不同的值,我使用group by进行了验证。

当我做这样的事情时,会返回一些数量:

SELECT COUNT(*) FROM table WHERE age='';

然而,当我这样做时,它总是返回0,即使这是不正确的:

SELECT COUNT(*) FROM table WHERE age=NULL;

当它应该返回正确的结果时,知道为什么这会返回0?

3 个答案:

答案 0 :(得分:6)

SELECT COUNT(*) FROM table WHERE age IS NULL;

阅读3.3.4.6. Working with NULL Values

  

要测试NULL,您不能使用   算术比较运算符等   as =,<或<>。

     

使用IS NULL   而不是IS NOT NULL运算符:

答案 1 :(得分:1)

NULL表示未知值,因此NULL在技术上不等于任何内容 - 包括自身

您应该使用IS NULL代替:

SELECT COUNT(*) FROM table WHERE age IS NULL

答案 2 :(得分:1)

你需要说“age IS NULL”而不是“age = null”。 NULL不等于任何东西 - 这意味着没有数据,你无法测试是否相等。