特定のテーブルから選択するストアドプロシージャがあります。このテーブルは、パラメータとしてプロシージャに渡されます。SELECT * FROM ParamNameそして、実行しようとすると、'テーブルParamNameが存在しません。何か提案は大歓迎ですか?
質問する
116 次
1 に答える
1
ParamName
MySQLには、それ自体がテーブル/フィールド名として表示されますが、これは当然のことです。Paramnameがストアドプロシージャのパラメータである場合、@ParamName
MySQLにその名前の変数を探すように指示するために使用する必要があります。
ただし、単純に行うことはできません
SELECT * FROM @ParamName
mysqlでは、テーブル/フィールド名を変数で指定することはできません。最初にステートメントを準備する必要があります。
SET @sql=CONCAT('SELECT * FROM ', @ParamName);
PREPARE s1 FROM @sql;
EXECUTE s1;
于 2012-08-13T16:47:12.880 に答える