我在我的表中有一列有几个不同的值,其中我通过使用group by
进行了验证。试图找到返回0的列的NULL值的数量?
当我做这样的事情它返回一个数字量:
SELECT COUNT(*) FROM table WHERE age='';
但是我这样做的时候,它总是返回0
尽管这是不正确的:
SELECT COUNT(*) FROM table WHERE age=NULL;
任何想法,这是为什么返回0时它应该返回正确的结果?
我在我的表中有一列有几个不同的值,其中我通过使用group by
进行了验证。试图找到返回0的列的NULL值的数量?
当我做这样的事情它返回一个数字量:
SELECT COUNT(*) FROM table WHERE age='';
但是我这样做的时候,它总是返回0
尽管这是不正确的:
SELECT COUNT(*) FROM table WHERE age=NULL;
任何想法,这是为什么返回0时它应该返回正确的结果?
SELECT COUNT(*) FROM table WHERE age IS NULL;
读3.3.4.6. Working with NULL Values
为了测试NULL,则不能使用该 算术比较操作符,如 =,<,或者<>。
使用IS NULL 和IS NOT NULL操作符:
NULL表示未知值,所以空在技术上并不等于什么 - 包括本身。
您应该使用IS NULL
代替:
SELECT COUNT(*) FROM table WHERE age IS NULL
你需要说 “年龄IS NULL” 而不是 “年龄=空”。 NULL不等于任何东西 - 这意味着没有数据,并且不能测试是否相等。
简而言之,NULL是一个特殊的值,根据定义,它不能等于其他任何东西,包括它本身。 – 2011-06-03 17:55:34
啊,是啊......傻傻的我哈哈。感谢那! – Brett 2011-06-03 18:56:54