如何解决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中的JSON类型(效率非常快)

    一篇文章彻底搞定MySQL中的JSON类型(效率非常快)

    这篇文章主要介绍了关于MySQL中JSON类型的相关资料,MySQL 5.7.8引入JSON数据类型,提供原生支持,相比字符类型,具有优势,JSON数据类型对数据进行预处理,自动将布尔类型转换为小写,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • 解决MySQL登录报错1130:1130 Host ***.***.***.*** is not allowed to connect to this MySQL server

    解决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()函数用法详解

    这篇文章主要介绍了MYSQL row_number()与over()函数用法详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 通过MySQL日志实时查看执行语句以及更新日志的教程

    通过MySQL日志实时查看执行语句以及更新日志的教程

    这篇文章主要介绍了通过MySQL日志实时查看执行语句以及更新日志的教程,文中所讲的方法使用到了mysqladmin命令,需要的朋友可以参考下
    2015-12-12
  • MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程

    MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程

    这篇文章主要介绍了MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程,xtrabackup用来对超过10G数据的Mysql进行备份和还原任务,需要的朋友可以参考下
    2014-09-09
  • 超全MySQL学习笔记

    超全MySQL学习笔记

    本文详细介绍了MySQL索引优化、锁和事物等学习记录,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 一次docker登录mysql报错问题的实战记录

    一次docker登录mysql报错问题的实战记录

    这篇文章主要给大家介绍了一次docker登录mysql报错问题的实战记录,文中通过实例代码介绍的非常详细,对大家学习或者使用docker具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • MySQL8安装Installer版的图文教程

    MySQL8安装Installer版的图文教程

    这篇文章主要介绍了MySQL8安装Installer版的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 解决Mysql Binlog文件太大导致无法解析问题

    解决Mysql Binlog文件太大导致无法解析问题

    这篇文章主要为大家介绍了解决Mysql Binlog文件太大导致无法解析问题,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • windows下安装mysql-8.0.18-winx64的教程(图文详解)

    windows下安装mysql-8.0.18-winx64的教程(图文详解)

    这篇文章主要介绍了windows下安装mysql-8.0.18-winx64,需要的朋友可以参考下
    2019-12-12

最新评论