mariadb:如何将表名存储到变量中?

tgabmvqs  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(357)

我需要在查询中多次使用表名。为了避免重复,我希望将名称存储到用户定义的变量中。
这个查询有什么问题?

SET @tableName := 'de-Table'
SELECT * FROM @tableName;

在mariadb中,错误是神秘的,而且(像往常一样)根本没有帮助:

/* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT * FROM @tableName' at line 3 */

先谢谢你

bbuxkriu

bbuxkriu1#

如果希望变量成为表名,则需要使用动态mysql。如果您直接从mysql执行此操作,那么以下操作应该可以使用:

SET @tableName = 'de-Table';
SET @query = CONCAT('SELECT * FROM ', @tableName);
PREPARE stmt FROM @query;
EXECUTE stmt;

相关问题