子查询中的MySQL Select太有限

时间:2018-08-27 15:27:25

标签: mysql subquery sql-server-group-concat

情况如下: 我必须从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,但是错误出现在几张桌子之后

感谢您的帮助

0 个答案:

没有答案