首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL COUNT() 函式完整用法教學:計算筆數與條件統計

     編輯:MySQL 資料庫相關知識

COUNT() 是最基礎且常用的聚合函式,用於計算查詢結果的筆數。支援 COUNT(*)、COUNT(column) 及搭配 WHERE 條件統計。

資料準備

mysql> SELECT * FROM employee_tbl;
+------+------+------------+--------------------+
| id   | name | work_date  | daily_typing_pages |
+------+------+------------+--------------------+
| 1    | John | 2007-01-24 | 250                |
| 2    | Ram  | 2007-05-27 | 220                |
| 3    | Jack | 2007-05-06 | 170                |
| 3    | Jack | 2007-04-06 | 100                |
| 4    | Jill | 2007-04-06 | 220                |
| 5    | Zara | 2007-06-06 | 300                |
| 5    | Zara | 2007-02-06 | 350                |
+------+------+------------+--------------------+

全表筆數:COUNT(*)

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

條件統計:WHERE name = 'Zara'

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

重要提醒:MySQL 預設字串比較不區分大小寫(依照字元排序規則),'Zara'、'zara'、'ZARA' 皆會匹配。若需嚴格區分大小寫,可用 BINARY 關鍵字:WHERE BINARY name = 'Zara'。

COUNT(*) vs COUNT(column) 差異

  • COUNT(*):計算所有列(包含 NULL)。
  • COUNT(column):計算該欄位非 NULL的列數。

效能提示

InnoDB 引擎下,COUNT(*) 需掃描全表(或索引),大表效能較差。可考慮維護計數器表、使用近似值(EXPLAIN 的 rows)、或觸發器同步更新統計表。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved