Как использовать переменную в качестве имени таблицы в SELECT?
Есть необходимость генерировать имя таблицы в зависимости от текущего времени, формируется так:
"SELECT CONCAT('dbname.tableprefix',DATE_FORMAT(NOW(),'%Y%m')) INTO @tablename;"
Далее необходимо выполнить запрос "SELECT `somefield` FROM @tablename;"
MySQL (5.5.44) выдаёт ошибку синтаксиса.
Как использовать значение переменной в качестве имени таблицы для запроса?
Нашёл решение.
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;
Ни в коем случае не ставил целью накручивать себе рейтинг. Да озвучил вопрос, потом нашёл решение, отписал его тут, может кому-нибудь ещё будет полезно.
Отвечая на ваш вопрос - нет не все, единственный вопрос такой. На предыдущий вопрос был получен ответ от пользователя Mrrl . Думаю не сложно посмотреть профиль и увидеть мои вопросы и ответы на них.