mysql - 计算每个表的行数(其中表名从子查询返回)

标签 mysql sql database

我正在从一个给出表列表的表中进行查询(基于不同的条件,列表会有所不同)。
我想显示表名列表及其行数。我怎样才能做到这一点?

我试过了

select count(*) from (select tablename from main_table) as t;

但它只返回 main_table 中的条目数,而不是每个表中的条目数。
我可以使用系统表来获取行数,但我不想要所有表,而是特定表,并且可能需要特定查询的行数。

算法是这样的

for tablenames in main_table where id>3:
    select count(*) from tablename where constraints    

最佳答案

尝试这样的事情:

SELECT table_name, table_type, SUM(TABLE_ROWS) 
FROM information_schema.tables
WHERE table_schema = 'db5' -- or your own schema
    AND  table_type ='BASE TABLE'
    AND table_name LIKE 'mytables%'
GROUP BY table_name, table_type

或者这个

SELECT table_name, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = '{your_db}'; 

关于mysql - 计算每个表的行数(其中表名从子查询返回),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15804797/

相关文章:

php - 向中国和新加坡交付内容时出现延迟和加​​载时间问题

java - "org.apache.derby.client.ClientBlob@518bb3a1"而不是显示在数据库中的 Jtable 上的图像

MySQL 在 Travel Log 表中查找油耗

java - Spring 应用程序未在 MySQL 上创建表

mysql - 从一个表中选择所有元素,并检查它们是否与另一个表匹配

MySql 列出直接和间接子记录

mysql - 如何使用sql获取过时天数

PHP 连接到 Oracle 数据库

sql-server - 通过数据库链接将 Oracle 连接到 SQL Server

mysql - 如何加入 2 个表并在 laravel 中按父表 id 对它们进行分组?