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