Запрос, начинающийся с предыдущего результата запроса - MySQL - PullRequest
0 голосов
/ 10 апреля 2019

У меня проблема с использованием схемы и таблиц MySQL.Точнее, я хотел бы выполнить запрос, который начинается с поиска определенных таблиц в предварительно выбранной схеме, а затем объединяет все выбранные таблицы в одну большую таблицу (используя UNION)

что я сделал до сих пор:

SET @union_jan_tables = NULL;
SELECT
GROUP_CONCAT(
DISTINCT
CONCAT('SELECT * FROM ', table_name)
SEPARATOR '\r\nUNION\r\n'
)
INTO
@union_jan_tables
FROM
information_schema.tables
WHERE
table_schema = 'my_schema' AND table_name LIKE '%jan%';

SELECT @union_jan_tables;

Он возвращает это:

'SELECT * FROM jan_2018

 UNION

 SELECT * FROM jan_2019'

К сожалению, он возвращает значение строки, которое является именно тем запросом, который я хотел бы выполнить.Следовательно, как я могу сказать MySQL Workbench запустить эту «строку»?

Кроме того, вы можете попытаться предложить другое решение!Это очень принято.

Заранее спасибо!

1 Ответ

2 голосов
/ 10 апреля 2019

Я полагаю, вы пытаетесь выполнить динамический SQL, который вы можете сделать так:

PREPARE stmt1 FROM @union_jan_tables;

EXECUTE stmt1;

DEALLOCATE PREPARE stmt1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...