mysql之count 函式詳解

2021-08-23 12:29:18 字數 1015 閱讀 9102

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

詳解MySQL中count函式的正確使用方法

詳解mysql中count函式的正確使用方法。1.描述 在mysql中,當我們需要獲取某張表中的總行數時,一般會選擇使用下面的語句 select count from table 其實count函式中除了 還可以放其他引數,比如常數 主鍵id 字段,那麼它們有什麼區別?各自效率如何?我們應該使用哪種...

MySQL之聚合函式count 的用法

在使用mysql資料庫查詢的時候,涉及到數量查詢,總是會使用count函式,一般有 count count 字段 count 1 count 主鍵id 這幾種用法,這些用法有什麼不同,原來沒有仔細思考過,今天偶然看到,在此記錄,希望自己在以後的開發中,能夠有所體會。count 是乙個聚合函式,對於返...

mysql的count函式優化

mysql的count優化總體上有以下注意事項 1.任何情況下select count from tablename是最優選擇 2.儘量減少select count from tablename where col value 這種查詢 3.杜絕select count col from table...