zoukankan      html  css  js  c++  java
  • mysql count()函数使用表达式的正确用法

    1.情景展示

      关于count()函数的用法,我们常用的有count(1),count(*),count(列名),count(distinct 列名),关于这些用法见文末推荐;

      在mysql中,count()函数里面是可以加表达式的,即:count(表达式),这个有什么用处呢?

      通常情况下,我们经常会用到状态,比如说用某一字段来表示用户的状态,当我们需要进行按用户状态进行统计计数时,用它将会变得非常方便。

      但是,在实际运用过程中,你将会发现神奇的一幕:

      该表中,明明有maintype=1和maintype=2的行记录,但是,我们会发现,不论是maintype=1还是maintype=2,其统计结果和统计该列的总数没有任何区别,这是怎么回事?

    2.原因分析

      原因就出在表达式上:count()函数,只有当括号()里面的值为null时,不进行计数,否则,count(任意内容)都会进行计数+1,具体示例如下:

      看懂这个例子,就会明白为什么maintype=1和maintype=2并没有起作用的原因

    3.解决方案

      由上面我们知道:只有在null时,count才不会计数,所以,当=不成立时,让它执行count(null)

      解决办法:在原有表达式的基础上+"or null"

      正确统计结果: 

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    【实验吧】CTF_Web_登录一下好吗?
    各种常用数字格式化
    .Net 4.0 (2)
    springBoot+springSecurity 数据库动态管理用户、角色、权限
    springboot+mybatis+SpringSecurity 实现用户角色数据库管理
    Spring boot中Redis的使用
    spring data jpa的使用
    如何优雅的使用mybatis
    WebJars
    mvn打包的POm文件
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/14652485.html
Copyright © 2011-2022 走看看