如何解决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登录报错1130:1130 Host ***.***.***.*** is not allowe
有时候在登录到MySQL服务器时会遇到1130错误,这是因为无法连接到MySQL服务器或其他一些原因,这篇文章主要给大家介绍了关于解决MySQL登录报错1130:1130 Host ***.***.***.*** is not allowed to connect to this MySQL server的相关资料,需要的朋友可以参考下2023-12-12
MYSQL row_number()与over()函数用法详解
这篇文章主要介绍了MYSQL row_number()与over()函数用法详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下2021-08-08
MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
这篇文章主要介绍了MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程,xtrabackup用来对超过10G数据的Mysql进行备份和还原任务,需要的朋友可以参考下2014-09-09
windows下安装mysql-8.0.18-winx64的教程(图文详解)
这篇文章主要介绍了windows下安装mysql-8.0.18-winx64,需要的朋友可以参考下2019-12-12


最新评论