如果要使用标识符构建SQL语句,则需要使用准备好的语句。但是准备好的语句不能在函数中使用。因此,您可以使用OUT参数创建存储过程-
CREATE PROCEDURE getName (IN tableName VARCHAr(50), IN myId INT(11), OUT myName VARCHAr(50))BEGIN SET @GetName = CONCAt('SELECt name INTO @var1 FROM ', tableName, ' WHERe id=', myId); PREPARE stmt FROM @GetName; EXECUTE stmt; SET myName = @var1;END使用示例-
SET @tableName = 'tbl';SET @myId = 1005;SET @name = NULL;CALL getName(@tableName, @myId, @name);SELECT @name;



