MySQL COUNT() 和空值

标签 mysql

我说得对吗:

COUNT(expr)
WHERE expr IS NOT *  

Will count only non nulls?

COUNT(*) 是否总是计算所有行?如果所有列都为空怎么办?

最佳答案

正确。 COUNT(*) 是表中的所有行,COUNT(Expression) 是仅表达式非空的情况。

如果所有列均为 NULL(这表明您没有主键,因此在规范化数据库中不应发生这种情况)COUNT(*) 仍然 返回插入的所有行。只是不要这样做。

您可以将 * 符号视为“在表中”而不是“在任何列中”的含义。

这在 MySQL Reference Manual 中有介绍。 .

关于MySQL COUNT() 和空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52220124/

相关文章:

javascript - 根据第一个下拉列表选择填充 HTML/PHP 下拉列表

mysql - 表中的列前缀

c# - 命名管道错误 40 : Visual Studio 2012 MySQL

mysql - 如何显示每个类别的数据计数mysql子查询

MySQL:即使没有记录,也选择范围内的所有日期

mysql - VB.Net 更新了所有数据未选择的数据

php - 我将如何返回数组中与任何 $_POST 结果不匹配的任何项目

mysql - “Execute stmt”存储的过程中-没有错误但没有插入的记录

php - 聊天应用服务器负载

MySql 查询 - 计算行数和百分比