如何解决mysql的count()函数条件表达式不生效问题
更新时间:2024年11月16日 14:04:48 作者:天黑请闭眼
该文章总结了SQL查询中`count`函数统计错误的原因,以及三种解决方法:使用`ornull`方法、`IF()`函数和`casewhen`表达式,当不满足条件时,表达式的值为NULL
示例
- 表数据
- 统计错误的sql
select count(age = 10) as count from student
- 查询结果
原因
count(‘任意内容’)都会统计出所有记录数
因为count只有在遇见null时才不计数
即:
count(null)==0
解决
方法1
count()函数中条件表达式加上or null
select count(age = 10 or null) as count from student
方法2
使用IF()
函数,当不满足条件时表达式的值为NULL
select count(IF(age = 10,1,null)) as count from student
方法3
使用case when
表达式,当不满足条件时表达式的值为NULL
select count(case when age = 10 then 1 else null end) as count from student
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
MYSQL ZIP免安装版配置步骤及图形化管理工具mysql-workbench
在 windows7 64位操作系统下配置mysql-5.5.25-winx64 (免安装版),记录步骤如下2014-03-03mysql insert if not exists防止插入重复记录的方法
在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问题的解决方案。2011-04-04
最新评论