0
我有一个存储过程,从某个表中进行选择。该表作为参数传递给过程。 SELECT * FROM ParamName 当我尝试运行它时,它告诉我是'Table ParamName does not exist。 任何建议,非常感谢?mysql存储过程和参数
我有一个存储过程,从某个表中进行选择。该表作为参数传递给过程。 SELECT * FROM ParamName 当我尝试运行它时,它告诉我是'Table ParamName does not exist。 任何建议,非常感谢?mysql存储过程和参数
ParamName
本身会出现在MySQL中作为表/字段名称,这是正确的抱怨。如果Paramname是存储过程的参数,则必须使用@ParamName
来告诉MySQL查找该名称的变量。
但是,你不能简单地做
SELECT * FROM @ParamName
MySQL不允许通过变量指定表/字段名。你必须先准备好一份声明:
SET @sql=CONCAT('SELECT * FROM ', @ParamName);
PREPARE s1 FROM @sql;
EXECUTE s1;
感谢您的回答。真的很有帮助。 – Diane 2012-08-13 17:00:31
尝试通过“DataBaseName.TableName”作为PARAMNAME – DarkFighter 2012-08-13 16:43:46