我的表格中有一个列有几个不同的值,我使用group by
进行了验证。
当我做这样的事情时,会返回一些数量:
SELECT COUNT(*) FROM table WHERE age='';
然而,当我这样做时,它总是返回0
,即使这是不正确的:
SELECT COUNT(*) FROM table WHERE age=NULL;
当它应该返回正确的结果时,知道为什么这会返回0?
答案 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不等于任何东西 - 这意味着没有数据,你无法测试是否相等。