mysql存储过程和参数

mysql存储过程和参数,mysql,stored-procedures,prepared-statement,Mysql,Stored Procedures,Prepared Statement,我有一个从某个表中选择的存储过程。此表作为参数传递给过程。 从ParamName中选择* 当我试图运行它时,它告诉我的是“表ParamName不存在”。 非常感谢您的任何建议。ParamName在MySQL看来,它本身就是一个表名/字段名,这是它正确的抱怨。如果Paramname是存储过程的参数,则必须使用@Paramname告诉MySQL查找该名称的变量 然而,你不能简单地这样做 SELECT * FROM @ParamName mysql不允许通过变量指定表/字段名。您必须首先准备一份声明

我有一个从某个表中选择的存储过程。此表作为参数传递给过程。 从ParamName中选择* 当我试图运行它时,它告诉我的是“表ParamName不存在”。
非常感谢您的任何建议。

ParamName
在MySQL看来,它本身就是一个表名/字段名,这是它正确的抱怨。如果Paramname是存储过程的参数,则必须使用
@Paramname
告诉MySQL查找该名称的变量

然而,你不能简单地这样做

SELECT * FROM @ParamName
mysql不允许通过变量指定表/字段名。您必须首先准备一份声明:

SET @sql=CONCAT('SELECT * FROM ', @ParamName);
PREPARE s1 FROM @sql;
EXECUTE s1;

尝试将“DataBaseName.TableName”作为paramname传递谢谢您的回答。真是帮了大忙。