了解 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中文网其他相关文章!