MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?

后端MySQL数据库

在 MySQL 中,count(*)、count(1) 和 count(字段名) 有什么区别?

推荐答案

在 MySQL 中,count(*)count(1)count(字段名) 有以下区别:

  • count(*):统计所有行,包括 NULL 值。
  • count(1):统计所有行,通常用于优化器的提示,但实际效果与 count(*) 相同。
  • count(字段名):统计指定字段不为 NULL 的行数。

选择合适的计数方式可以优化查询性能。