MySQL でストアド プロシージャを作成しており、SQL クエリの結果を変数に割り当てる必要があります。問題は、SELECT ステートメントを作成するには、パラメーターを渡すため、CONCAT() 関数を使用する必要があることです。
CONCAT 関数内では変数を使用できないようです。どうすればこれを達成できるかについてのアイデアはありますか? 私が書こうとしている手順は以下のとおりです。
DELIMITER //
CREATE PROCEDURE `my_proc` (IN tbl VARCHAR(20), IN col VARCHAR(20), IN id INT)
BEGIN
DECLARE @myval VARCHAR(100);
SET @t1 =CONCAT('SELECT ',col,' FROM ',tbl,' INTO @myval WHERE id = ',id );
PREPARE stmt1 FROM @t1;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END //
これを実行すると、SQL 構文エラーが発生します。