mysql count(*)分组之后IFNULL无效问题

 更新时间:2024年11月16日 14:29:55   作者:程序猿猿猿猿猿  
文章总结:作者分享了在解决MySQL中根据发票ID和单位统计单位数量的问题时遇到的困难及解决方法,通过使用IFNULL()函数和CASEWHEN都无法解决问题,最终作者选择了嵌套循环的方法来实现需求,并总结了经验以供参考

mysql count(*)分组后IFNULL无效

因为之前用oracle比较多,mysql没有经过系统性学习,所以这次碰到这个问题,弄了比较久,在此记录一下

需求

根据发票ID和单位来统计,一个ID下挂靠多少个单位

最开始的错误语句

        SELECT
            count(t.CostCenter) AS countNum
        FROM
            trip_plane_settlement t
        WHERE
            t.itineraryId = #{itineraryId}
        GROUP BY
            t.itineraryId,
            t.CostCenter

后台用int来接收时,如果返回空就会抛出异常,然后我就想用IFNULL()函数来实现,如果为空时返回0,但是发现还是返回还是为空,后来查阅资料之后,才发现如果分组之后,如果查询条件查不到数据时还是会返回null,后面尝试过 CASE WHEN 来实现,发下还是会返回null,因为查不到数据时,整个结果集都是空的,函数就不会生效。

后面就想用嵌套循环来实现试试,发现果然可以。

解决代码

SELECT
	IFNULL(count(*), 0) AS countNum
FROM
	(
		SELECT
			count(t.CostCenter) AS countNum,
			t.itineraryId,
			t.CostCenter
		FROM
			trip_plane_settlement t
		GROUP BY
			t.itineraryId,
			t.CostCenter
	) t1
WHERE
	t1.itineraryId = #{itineraryId}

总结

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

相关文章

  • MySQL IS NULL空值查询的实现

    MySQL IS NULL空值查询的实现

    MySQL 提供了 IS NULL 关键字,用来判断字段的值是否为空值,本文主要介绍了MySQL IS NULL空值查询的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • 关于mysql innodb count(*)速度慢的解决办法

    关于mysql innodb count(*)速度慢的解决办法

    innodb引擎在统计方面和myisam是不同的,Myisam内置了一个计数器,所以在使用 select count(*) from table 的时候,直接可以从计数器中取出数据。而innodb必须全表扫描一次方能得到总的数量
    2012-12-12
  • Redis什么是热Key问题以及如何解决热Key问题

    Redis什么是热Key问题以及如何解决热Key问题

    这篇文章主要介绍了Redis什么是热Key问题以及如何解决热Key问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • mysql5.6主从搭建以及不同步问题详解

    mysql5.6主从搭建以及不同步问题详解

    大家好,本篇文章主要讲了mysql5.6主从搭建以及不同步问题详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Ubuntu 18.04配置mysql以及配置远程连接的步骤

    Ubuntu 18.04配置mysql以及配置远程连接的步骤

    这篇文章主要给大家介绍了关于Ubuntu 18.04配置mysql以及配置远程连接的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • MySQL 表分区步骤示例详解

    MySQL 表分区步骤示例详解

    MySQL表分区是一种数据库管理技术,用于将大型表拆分成更小、更可管理的分区(子表,这篇文章主要介绍了MySQL 表分区简介,需要的朋友可以参考下
    2023-09-09
  • mysql 5.7.14 下载安装配置方法图文教程

    mysql 5.7.14 下载安装配置方法图文教程

    这篇文章主要为大家分享了mysql 5.7.14 下载安装配置方法图文教程,感兴趣的朋友可以参考一下
    2016-08-08
  • MySQL安全配置向导mysql_secure_installation详解

    MySQL安全配置向导mysql_secure_installation详解

    这篇文章主要介绍了MySQL安全配置向导mysql_secure_installation各项配置的含义,并依据经验给予一了一些建议,需要的朋友可以参考下
    2014-03-03
  • MySQL的存储函数与存储过程的区别解析

    MySQL的存储函数与存储过程的区别解析

    这篇文章主要介绍了MySQL的存储函数与存储过程的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • 详解MYSQL的备份还原(PHP实现)

    详解MYSQL的备份还原(PHP实现)

    本篇文章是对MYSQL的备份还原进行了详细的分析介绍,需要的朋友参考下
    2013-06-06

最新评论