示例
- 表数据
- 统计错误的sql
1 | select count (age = 10) as count from student |
- 查询结果
原因
count(‘任意内容’)都会统计出所有记录数
因为count只有在遇见null时才不计数
即:
1 | count ( null )==0 |
解决
方法1
count()函数中条件表达式加上or null
1 | select count (age = 10 or null ) as count from student |
方法2
使用IF()
函数,当不满足条件时表达式的值为NULL
1 | select count (IF(age = 10,1, null )) as count from student |
方法3
使用case when
表达式,当不满足条件时表达式的值为NULL
1 | select count ( case when age = 10 then 1 else null end ) as count from student |
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。