Как использовать переменную в качестве имени таблицы в SELECT?

Есть необходимость генерировать имя таблицы в зависимости от текущего времени, формируется так:
"SELECT CONCAT('dbname.tableprefix',DATE_FORMAT(NOW(),'%Y%m')) INTO @tablename;"
Далее необходимо выполнить запрос "SELECT `somefield` FROM @tablename;"
MySQL (5.5.44) выдаёт ошибку синтаксиса.
Как использовать значение переменной в качестве имени таблицы для запроса?
  • Вопрос задан
  • 903 просмотра
Решения вопроса 1
@warmbellycat Автор вопроса
Нашёл решение.
SELECT CONCAT('dbname.tableprefix',DATE_FORMAT(NOW(),'%Y%m')) into @t;
SET @sqltext=concat('select `somefield` from ',@t);
PREPARE sel FROM @sqltext;
EXECUTE sel;
DEALLOCATE PREPARE sel;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы