*`COUNT()` 是否始终保证结果,即使没有匹配项?**
在使用如下所示的查询时,理解 COUNT(*)
的行为非常重要:
<code class="language-sql">SELECT COUNT(*) as num FROM table WHERE x = 'y'</code>
查询解释
此查询计算 table
表中 x
列等于 y
的行数。
*答案:是的,`COUNT()` 始终返回结果**
与其他聚合函数(如 MAX、SUM 或 MIN)不同,当没有记录匹配条件时,这些函数返回 NULL 值,而 COUNT(*)
始终返回结果。
*原因:`COUNT()` 计数 NULL 值**
这种行为的原因是 COUNT(*)
计算表中的所有行,包括具有 NULL 值的行。因此,即使没有行匹配 WHERE 子句中的条件,COUNT(*)
也始终返回 0。
附加说明:
COUNT(*)
而不是 COUNT()
来确保计算 NULL 值。COUNT(*)
返回零行。例外情况
此规则很少有例外情况,例如:
以上是即使匹配为零,'COUNT(*)”也总是返回一个值吗?的详细内容。更多信息请关注PHP中文网其他相关文章!