当使用所谓的COUNT
函数时,MySQL无法计算NULL值。
例如,我们有一个简单的表:
supplier_id supplier_name state
1 IBM CA
2 Microsoft
3 NVIDIA
此查询:
SELECT
state
, COUNT(state)
FROM atable
GROUP BY state
;
将返回
CA 1
我如何修改它以向我展示表格的真实性质,即
CA 1
NULL 2
答案 0 :(得分:2)
使用COALESCE:
SELECT ...., COUNT (COALESCE (state, 'unknown')) ....
答案 1 :(得分:2)
只需使用count(*)
来计算带有空值的行数。
SELECT state, count(*) FROM atable GROUP BY state;
count(*)
和count(state)
之间的区别在于前者不计算空值。您可以在the docs中找到详细信息和示例。