count函数 判断


今天写sql时候,测试发现count里直接写逻辑是无法判断的,可以在里面继续写逻辑。

例如,一个字段有多个值

 

 我们只需要 0的行数,sql如下,

 

 

count(IF(popd.reslove_type=0,TRUE,null)) as waitTodoCnt,

 

 里面再加if判断,如果是0,就是true,计数;不是0,则为null.

 

如果计算字段中有空值或者null,sql如下

 

先判断是否为null,在里面在判断是否为空就行。

 

那为什么不是我们想要的条件就返回null值呢?就不计数了呢?

count三种形式,

count(*),count(1),count(字段)

 

前两者多差不多,都是走主键,索引,是计算null值;

第三种不走索引,走字段,但是不计算NulL的。

效率方面,尽量使用前两种。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM