MySQL Select в подзапросе слишком ограничен - PullRequest
0 голосов
/ 27 августа 2018

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

Спасибо за помощь

...