私はあなたがこのようにそれをすることはできないと信じています。
これを実現するには、動的SQLを使用する必要があります。
動的SQLを使用してカーソルを開くこともできないことに注意してください。しかし、あなたの場合、カーソルは必要ないようです。
コードを正しく理解していれば、ユーザー変数を使用するだけで、動的に準備された2つのステートメントを使用して実行しようとしていることを実現できます。
SET @stmt_text=CONCAT("SELECT @score = SUM(`score`), @maxscore=SUM(`maxscore`) FROM ",
answertable, "WHERE `idParticipation`= ", partid);
PREPARE stmt FROM @stmt_text;
EXECUTE stmt USING @a;
次に、以下のステートメントを使用して値を更新します
SET @stmt_text=CONCAT("UPDATE", participationtable, " SET `score`[email protected],
`maxscore`[email protected] WHERE `idParticipation`=", partid);
PREPARE stmt FROM @stmt_text;
EXECUTE stmt USING @a;
DEALLOCATE PREPARE stmt;
注:構文を確認してください。正確に検証するためにテストすることはできませんが、アイデアが得られることを願っています。