我可以让MySQL返回数据库中的所有非空表吗?很像“SHOW TABLES”,但只有那些不是空的。
答案 0 :(得分:61)
'information_schema'应该持有相关细节。你可以尝试
SELECT table_type,
table_name
FROM information_schema.tables
WHERE table_rows >= 1;
从选择性数据库中进行选择。您也可以按TABLE_SCHEMA
:
SELECT table_schema,
table_type,
table_name
FROM information_schema.tables
WHERE table_rows >= 1
AND TABLE_SCHEMA=?
答案 1 :(得分:8)
使用数据库'information_schema'并运行
SELECT * FROM `TABLES` WHERE `TABLE_ROWS` > 0
这将为您提供服务器中用于某个数据库运行的所有非空表
SELECT * FROM `TABLES` WHERE `TABLE_ROWS` > 0 AND `TABLE_SCHEMA` = 'database_name'
答案 2 :(得分:7)
接受的答案对我来说没有用, information_schema table_rows 有一些非常奇怪的值。
这就像一个魅力:
SHOW TABLE STATUS WHERE Rows > 0;
答案 3 :(得分:0)
您可以通过phpMyAdmin运行此查询:
SELECT *
FROM `information_schema`.`TABLES`
WHERE `TABLE_ROWS` > 0
将返回非空表的列表