当我们执行 select count(*) from table_name
时,它会返回行数。
count(1)
有什么作用? 1
在这里表示什么?这是否与 count(*)
相同(因为它在执行时给出相同的结果)?
最佳答案
COUNT 函数的参数是要为每一行计算的表达式。 COUNT 函数返回表达式计算结果为非空值的行数。 ( * 是一个特殊的表达式,不计算,它只返回行数。)
表达式还有两个附加修饰符:ALL 和 DISTINCT。这些决定是否丢弃重复项。由于 ALL 是默认值,因此您的示例与 count(ALL 1) 相同,这意味着保留重复项。
由于表达式“1”对每一行的计算结果都为非空,并且由于您没有删除重复项,因此 COUNT(1) 应始终返回与 COUNT(*) 相同的数字。
关于sql - 任何数据库表上的 "select count(1) from table_name"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181272/