COUNT(*) 与 COUNT(column_name):有什么区别以及何时应该使用它们?

Patricia Arquette
发布: 2024-11-17 22:49:02
原创
177 人浏览过

COUNT(*) vs. COUNT(column_name): What's the Difference and When Should You Use Each?

了解 COUNT(*) 和 COUNT(column_name) 之间的差异

使用 SQL 查询时,必须掌握两者之间的区别COUNT(*) 和 COUNT(column_name) 以确保准确results.

COUNT(*)

COUNT(*) 对结果集中的所有行进行计数,无论它们是否包含 NULL 值。这是最具包容性的计数,因为它考虑了满足查询条件的每一行。

COUNT(column_name)

COUNT(column_name) 仅对那些符合查询条件的行进行计数指定列不为 NULL。此函数会忽略给定列中缺少值的行。

性能影响

COUNT() 的计算强度可能比 COUNT(column_name) 更高。表中有很多 NULL 值。由于 COUNT() 无论如何都必须检查每一行,因此在这种情况下它的执行速度可能会较慢。

COUNT(*)

COUNT(1) 的替代方法是COUNT(*) 的替代方法,也返回总行数。但是,无论其他列值如何,它的计算结果始终为非 NULL 值。

实验演示

为了说明结果的差异,请考虑下表和查询:

CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);
SELECT
    COUNT(*) AS a,
    COUNT(x) AS b,
    COUNT(1) AS c
FROM table1;
登录后复制

结果:

a   b   c
3   2   3
登录后复制

如您所见,COUNT() 返回 3,因为它计算所有行,而 COUNT( x) 返回 2,不包括 NULL 值行。 COUNT(1) 与 COUNT() 没有区别,也返回 3。

以上是COUNT(*) 与 COUNT(column_name):有什么区别以及何时应该使用它们?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板