mysql mysql统计行数 COUNT(*)总是返回结果吗?




mysql统计行数 (6)

是的它总是会返回一个数字

如果我运行如下查询:

SELECT COUNT(*) as num FROM table WHERE x = 'y'

它是否总是返回结果,即使查询与任何记录都不匹配? 或者我是否需要验证并确保返回行作为结果?


是的,因为它是一个聚合并返回零。 除非您添加GROUP BY,否则没有结果,因为没有组...

除非您添加GROUP BY然后没有行,否则MAX / SUM等将返回NULL。 只有COUNT会返回一个没有结果的数字

编辑,有点晚:SUM会像MAX一样返回NULL

编辑,2013年5月:这适用于所有主要RDBMS。 我想按照ANSI标准


是的,在这种情况下它会返回0。


聚合函数Count()始终返回值


如果没有匹配的记录,则计数将返回0.(所以是的,count总是返回一个结果,除非你有一些语法错误)


总会有一行结果如下:

| COUNT(*) |
------------
| 0        |

如果没有比赛。

顺便说一句,我更愿意只计算主键而不是*





aggregate