从INFORMATION_SCHEMA检索的一组表中的MySQL SELECT
大家好.我有以下几组表,这些表是可变的,并且每天都会累加:
等等.所有表都具有相同的结构,我想立即从所有表中选择内容.由于正在运行InnoDB,因此无法使用MERGE表.无论如何,我正在使用以下语句从我的information_schema中选择表名称:
哪个返回我要合并的所有表.我还可以group_concat返回的结果以逗号作为分隔符来列出结果.现在,我遇到的问题是运行一个选择查询,该查询实际上将从这些表中检索数据. 任何提示表示赞赏.谢谢! ?K 最佳答案 您将必须使用动态SQL来构建查询(或多个查询),以从这些表中获取结果.也就是说,您可以从information_schema查询中以字符串形式返回表,然后将这些字符串插入到进一步的查询中.涉及针对所有表的单个查询的UNION:
但我质疑您每天创建一个单独的表的设计.乍一看似乎很方便,但是表传播失控了,您最终难以进行普通查询,就像现在面临的困难一样.这是一个antipattern,我称为“元数据Tribbles”. 您的数据可能存储在一个表中,并带有一个日期列,以便您区分不同日期的数据.您可能只需要创建索引来辅助需要针对总数据运行的查询. 发表您的评论: 您不能在SQL查询(包括视图定义)中使表名称动态化.您可以将表名插入一个字符串中,然后将该字符串准备为SQL查询. 您可以使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |