gpt4 book ai didi

mysql - 从不同的 SQL 表中选择数据,按表名过滤

转载 作者:行者123 更新时间:2023-11-29 13:11:51 24 4
gpt4 key购买 nike

我有很多具有相同列的表,我需要从所有表中提取数据(例如 COUNT)。

我知道我可以创建 UNION 语句,但我有 100 个表,并且所有表名称都具有相同的格式(example_table_1.example_table_2...)。有没有办法对具有特定条件的所有表进行 UNION(在本例中,表名包含“example_table”)?

感谢您的帮助,我是这方面的新手。

最佳答案

具有相同结构的多个表几乎没有意义,如果可能,您应该修复设计。

您可以使用 INFORMATION_SCHEMA 获取计数,或单独列出表(然后您可以将其与 sql 语句连接):

 SELECT SUM(table_rows) 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '{your_db}'
AND table_name LIKE '%example_table%';

如果您需要精确计数,则应使用 CONCAT() 构建 COUNT() 查询,因为 INFORMATION_SCHEMA 可能不可靠:

SELECT CONCAT('SELECT "',table_name,'" AS table_name, COUNT(*) AS ct FROM ',table_schema,'.',table_name,' UNION') 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '{your_db}'
AND table_name LIKE '%example_table%';

关于mysql - 从不同的 SQL 表中选择数据,按表名过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21994966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com