情况如下: 我必须从information_schema中获取表的名称,然后必须对返回的每个表执行一次选择。基本上是对动态表的选择。
我解决了这样的问题:
set @sql = (select group_concat(replace('(select ts_start from @table limit 1)', '@table', a.table_name) separator ' union ')
from (select table_name from information_schema.tables where table_name like 'example%') a );
所以我从几个表中获得ts_start字段的第一行,然后mysql联合会丢弃ts_start相等的结果
除了嵌套查询返回约4000个表,但整个语句以请求的格式给出的查询不超过20个之外,所有操作均按预期方式进行:
select ts_start from example1 union select ts_start from example2 union ...
如果我不这样限制嵌套查询,则:
...from (select table_name from information_schema.tables where table_name like 'example%' limit 10) a );
最终减少了20个表的结果,我将不得不管理4000个表。错误示例:
... select ts_start from example19 union select ts_start from exa
例如20,但是错误出现在几张桌子之后
感谢您的帮助