MySQL ROW COUNT

17 Mar 2025 | 4 分钟阅读

如何获取 MySQL 表中的行数?

行数意味着数据库中有多少条记录。这是在开发和运营过程中查找和监控表增长的关键活动。允许我们返回表中可用记录数量的最简单和最流行的函数是MySQL COUNT() 函数。它是一个聚合函数,作用于整个记录集,并产生一个单一的汇总输出。

我们可以使用 MySQL COUNT() 函数来完成以下事情

  • 返回表中可用的记录数。
  • 返回查询或别名表的行数。
  • 获取列中非空值的计数。
  • 获取列中不同或唯一值的计数。

语法

以下是获取 MySQL 中单个表行数的语法

让我们以以下表为例进行演示

表:employee

MySQL ROW COUNT

表:orders

MySQL ROW COUNT

例如,如果我们想获取 employee 表的总行数,我们需要使用以下语法

我们应该得到如下截图所示的输出

MySQL ROW COUNT

获取两个或更多表的 MySQL 行数

如果我们想获取两个或更多表的行数,需要使用子查询,即每个单独的表一个子查询。

示例

假设我们想在单个查询中获取 employeeorders 表的行数,我们必须按如下方式执行查询

输出

我们将得到如下输出结果

MySQL ROW COUNT

我们还可以使用 UNION 操作符来获取两个或更多表的行数,其中该操作符将单个 SELECT 查询返回的结果组合起来。

我们将得到如下输出

MySQL ROW COUNT

获取特定数据库中所有表的 MySQL 行数

MySQL 还允许我们获取特定数据库中所有表的行数。以下是帮助我们计算特定数据库中所有表行数的步骤

步骤 1: 首先,我们需要获取数据库中所有可用的表名。

步骤 2: 其次,创建一个 SQL 语句,其中包含所有表的计数查询,并用 UNION 操作符分隔。

步骤 3: 最后,使用 MySQL 预处理语句执行查询。

要获取特定数据库表的所有表名,请从 information_schema 数据库执行以下查询

上述数据库包含以下表

MySQL ROW COUNT

接下来,构造 SQL 语句。在这里,我们将使用 GROUP_CONCAT 和 CONCAT 函数来构造语句

在上面的查询中,table_list 是特定数据库中可用表的名称,是第一步使用的查询结果。因此,上面的 SQL 查询变为

如果您使用的是 MySQL 版本 8.0 或更高版本,您可以使用 MySQL CTE(公共表表达式)而不是派生表。

第三,使用预处理语句按如下方式执行 @sql 语句

执行上述语句后,我们将得到如下输出

MySQL ROW COUNT

使用单个查询获取数据库中所有表的 MySQL 行数

MySQL 还提供了一个查询来计算特定数据库中所有表的行数。最快的方法是直接从 information_schema 数据库查询数据。请参阅下面的语句

执行后,我们将得到如下结果

MySQL ROW COUNT

有时此查询不会返回准确的结果。这是因为表中的实际行数和 information_schema 中的行数不同步。我们可以在从 information_schema 数据库查询行数之前运行 ANALYZE TABLE 语句来避免此不准确的结果。


下一个主题MySQL 预处理语句