-- 选择要操作的数据库
USE db;
-- 设置 group_concat_max_len 以确保 SQL 语句不会被截断
SET SESSION group_concat_max_len = 102400;
-- 创建变量用于存储动态生成的 SQL 语句
SET @sql = NULL;
-- 生成 SQL 语句
SELECT GROUP_CONCAT(
CONCAT('SELECT ''', table_name, ''' AS table_name, COUNT(*) AS row_count FROM ', table_name)
ORDER BY table_name
SEPARATOR ' UNION ALL '
) INTO @sql
FROM information_schema.tables
WHERE table_schema = DATABASE();
-- 追加 ORDER BY 语句
SET @sql = CONCAT(@sql, ' ORDER BY row_count DESC');
-- 准备并执行动态 SQL
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;