關於mysql中的count()函數


1.count()函數是用來統計表中記錄的一個函數,返回匹配條件的行數。

 

2.count()語法:

(1)count(*)---包括所有列,返回表中的記錄數,相當於統計表的行數,在統計結果的時候,不會忽略列值為NULL的記錄。

(2)count(1)---忽略所有列,1表示一個固定值,也可以用count(2)、count(3)代替,在統計結果的時候,不會忽略列值為NULL的記錄。

(3)count(列名)---只包括列名指定列,返回指定列的記錄數,在統計結果的時候,會忽略列值為NULL的記錄(不包括空字符串和0),即列值為NULL的記錄不統計在內。

(4)count(distinct 列名)---只包括列名指定列,返回指定列的不同值的記錄數,在統計結果的時候,在統計結果的時候,會忽略列值為NULL的記錄(不包括空字符串和0),即列值為NULL的記錄不統計在內。

 

3.count(*)&count(1)&count(列名)執行效率比較:

(1)如果列為主鍵,count(列名)效率優於count(1)

(2)如果列不為主鍵,count(1)效率優於count(列名)

(3)如果表中存在主鍵,count(主鍵列名)效率最優

(4)如果表中只有一列,則count(*)效率最優

(5)如果表有多列,且不存在主鍵,則count(1)效率優於count(*)

 

4.因為count(*)和count(1)統計過程中不會忽略列值為NULL的記錄,所以可以通過以下兩種方式來統計列值為NULL的記錄數:

(1)select count(*) from table where is_active is null;
(2)select count(1) from table where is_active is null;


5.特例:

(1)select count('') from table;-返回表的記錄數
(2)select count(0) from table;-返回表的記錄數
(3)select count(null) from table;-返回0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM