Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql的count()函数条件表达式不生效

如何解决mysql的count()函数条件表达式不生效问题

作者:天黑请​闭眼

该文章总结了SQL查询中`count`函数统计错误的原因,以及三种解决方法:使用`ornull`方法、`IF()`函数和`casewhen`表达式,当不满足条件时,表达式的值为NULL

示例

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文