首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL COUNT() 函數詳解:從基礎計數到條件統計

     編輯:MySQL 綜合教學

MySQL COUNT() 函數詳解:從基礎計數到條件統計

COUNT() 是最常用的聚合函數,用於統計符合條件的行數。本文通過實例講解其各種用法與注意事項。

範例數據

同 employee_tbl 表,共 7 行記錄。

1. 統計總行數

mysql> SELECT COUNT(*) FROM employee_tbl;
+----------+
| COUNT(*) |
+----------+
| 7        |
+----------+

COUNT(*) 包含 NULL 值行,不忽略任何行。

2. 條件計數

mysql> SELECT COUNT(*) FROM employee_tbl WHERE name = 'Zara';
+----------+
| COUNT(*) |
+----------+
| 2        |
+----------+

3. COUNT(列名) vs COUNT(*)

  • COUNT(*):統計行數,忽略 NULL 無關。
  • COUNT(column):統計該列非 NULL的值的個數。
  • COUNT(DISTINCT column):統計該列去重後非 NULL的值的個數。
SELECT 
    COUNT(*) AS total_rows,
    COUNT(daily_typing_pages) AS non_null_pages,
    COUNT(DISTINCT name) AS unique_names
FROM employee_tbl;

4. 大小寫不敏感

MySQL 默認字符集校對規則不區分大小寫,WHERE name='Zara'、'zara'、'ZARA' 效果相同。

5. 效能提示

  • MyISAM 表無 WHERE 時 COUNT(*) 極快(直接讀取表元數據)。
  • InnoDB 需掃描聚簇索引或二級索引,大表計數較慢,可考慮計數表或緩存。
  • 避免 COUNT(column) 當不需要過濾 NULL 時,COUNT(*) 更明確且優化器友好。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved