mysql中COUNT函数用法_mysql COUNT函数使用方法

COUNT函数用于统计行数,包括COUNT()统计所有行、COUNT(列名)统计非NULL值、COUNT(1)与COUNT()性能相近,且可结合WHERE实现条件计数。

MySQL中的COUNT函数用于统计行数,常用于查询表中满足条件的记录数量。它属于聚合函数,通常与SELECT语句一起使用,能帮助我们快速获取数据的数量信息。

1. COUNT(*) 统计所有行

使用 COUNT(*) 可以统计表中的总行数,包括NULL值的行。

例如:
SELECT COUNT(*) FROM users;

这条语句返回users表中所有记录的数量,不管任何字段是否为NULL。

2. COUNT(列名) 统计非NULL值的行

当指定某一列为参数时,COUNT(列名) 只统计该列中非NULL的值。

例如:
SELECT COUNT(age) FROM users;

如果age字段有部分记录为NULL,这些记录不会被计入总数。

3. COUNT(1) 与 COUNT(*) 的区别

COUNT(1) 中的“1”是常量,表示每一行都返回一个值,效果上与 COUNT(*) 基本一致,都会统计所有行。

常见写法:
SELECT COUNT(1) FROM orders;

大多数情况下,COUNT(1) 和 COUNT(*) 性能相近,具体选择更多是习惯问题。

4. 结合 WHERE 条件进行条件计数

可以在 COUNT 函数中结合 WHERE 子句,统计满足特定条件的行数。

示例:
SELECT COUNT(*) FROM users WHERE status = 'active';

这条语句统计状态为 active 的用户数量。

也可以使用条件表达式进行更复杂的统计:

SELECT 
  COUNT(*) AS total,
  COUNT(CASE WHEN age >= 18 THEN 1 END) AS adults
FROM users;

这样可以同时统计总人数和成年人数。

基本上就这些。COUNT函数简单但非常实用,掌握它的不同用法能有效提升查询效率。