gpt4 book ai didi

mysql - MySQL 统计所有行时要统计什么

转载 作者:可可西里 更新时间:2023-11-01 07:58:31 24 4
gpt4 key购买 nike

在计算 * 、任何自定义字段 ( n ) 或 primary id

* 在查询中到底指的是什么,它与其他两种方式有何不同?

SELECT COUNT( * ) FROM t;
SELECT COUNT( id ) FROM t;
SELECT COUNT( n ) FROM t;

更新:

假设 idn 在任何记录中都不为空。

最佳答案

COUNT(*) will include NULLS
COUNT(column_or_expression) won't.

这意味着 COUNT(any_non_null_column) 将给出与 COUNT(*) 相同的结果,当然因为没有 NULL 值导致差异。

一般来说,COUNT(*) 应该更好,因为可以使用任何索引,因为 COUNT(column_or_expression) 可能不会被索引或 SARGable

来自 ANSI-92 (寻找“标量表达式 125”)

案例:

a) If COUNT(*) is specified, then the result is the cardinality of T.

b) Otherwise, let TX be the single-column table that is the result of applying the to each row of T and eliminating null values. If one or more null values are eliminated, then a completion condition is raised: warning- null value eliminated in set function.

同样的规则至少也适用于 SQL Server 和 Sybase

注意:COUNT(1)COUNT(*) 相同,因为 1 是不可为 null 的表达式。

关于mysql - MySQL 统计所有行时要统计什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31717355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com