我在我的表中有一列有幾個不同的值,其中我通過使用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