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 | +------+------+------------+--------------------+
mysql> SELECT COUNT(*) FROM employee_tbl; +----------+ | COUNT(*) | +----------+ | 7 | +----------+
mysql> SELECT COUNT(*) FROM employee_tbl WHERE name = 'Zara'; +----------+ | COUNT(*) | +----------+ | 2 | +----------+
重要提醒:MySQL 預設字串比較不區分大小寫(依照字元排序規則),'Zara'、'zara'、'ZARA' 皆會匹配。若需嚴格區分大小寫,可用 BINARY 關鍵字:WHERE BINARY name = 'Zara'。
COUNT(*):計算所有列(包含 NULL)。COUNT(column):計算該欄位非 NULL的列數。InnoDB 引擎下,COUNT(*) 需掃描全表(或索引),大表效能較差。可考慮維護計數器表、使用近似值(EXPLAIN 的 rows)、或觸發器同步更新統計表。