变量数据库名称

gri*_*lix 20 mysql sql

在MySQL中有什么方法可以将数据库的名称放入变量中吗?例如,当我有一个名为'db1'的数据库时,我可以这样做:

set @db= 'db1';
select * from @db.mytable;
Run Code Online (Sandbox Code Playgroud)

编辑:还有另一个我想做的例子:

set @dbfrom= 'db1';
set @dbto= 'db2';
insert into @dbto.mytable (col1,col2,col3) select col2,col1,col3 from @dbfrom.mytable;
Run Code Online (Sandbox Code Playgroud)

cha*_*aos 24

经过努力,是的.

SET @db = 'db1';
SET @q = CONCAT('SELECT * FROM ', @db, '.mycol');
PREPARE stmt FROM @q;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Run Code Online (Sandbox Code Playgroud)