翼度科技»论坛 编程开发 mysql 查看内容

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

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
示例


  • 表数据


  • 统计错误的sql
  1. select count(age = 10) as count from student
复制代码

  • 查询结果


原因

count(‘任意内容’)都会统计出所有记录数
因为count只有在遇见null时才不计数
即:
  1. count(null)==0
复制代码
解决


方法1

count()函数中条件表达式加上
  1. or null
复制代码
  1. select count(age = 10 or null) as count from student
复制代码
方法2

使用
  1. IF()
复制代码
函数,当不满足条件时表达式的值为NULL
  1. select count(IF(age = 10,1,null)) as count from student
复制代码
方法3

使用
  1. case when
复制代码
表达式,当不满足条件时表达式的值为NULL
  1. select count(case when age = 10 then 1 else null end) as count from student
复制代码
总结

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

来源:https://www.jb51.net/database/330787g7r.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具