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"

      正确统计结果: 

    写在最后

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

     相关推荐:

  • 相关阅读:
    MIne FirstBlog
    P6563 [SBCOI2020]一直在你身旁
    P6563 [SBCOI2020]一直在你身旁
    T122085 [SBCOI2020]时光的流逝
    LC 918. Maximum Sum Circular Subarray
    1026 Table Tennis
    LC 1442. Count Triplets That Can Form Two Arrays of Equal XOR
    LC 1316. Distinct Echo Substrings
    LC 493. Reverse Pairs
    1029 Median (二分)
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/14652485.html
Copyright © 2011-2022 走看看