ситуация следующая:
Я должен получить имена таблиц из 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, однако ошибка появляется после нескольких таблиц
Спасибо за помощь