0

特定のテーブルから選択するストアドプロシージャがあります。このテーブルは、パラメータとしてプロシージャに渡されます。SELECT * FROM ParamNameそして、実行しようとすると、'テーブルParamNameが存在しません。何か提案は大歓迎ですか?

4

1 に答える 1

1

ParamNameMySQLには、それ自体がテーブル/フィールド名として表示されますが、これは当然のことです。Paramnameがストアドプロシージャのパラメータである場合、@ParamNameMySQLにその名前の変数を探すように指示するために使用する必要があります。

ただし、単純に行うことはできません

SELECT * FROM @ParamName

mysqlでは、テーブル/フィールド名を変数で指定することはできません。最初にステートメントを準備する必要があります。

SET @sql=CONCAT('SELECT * FROM ', @ParamName);
PREPARE s1 FROM @sql;
EXECUTE s1;
于 2012-08-13T16:47:12.880 に答える