Saya percaya Anda tidak dapat melakukannya dengan cara ini.
Untuk mencapai ini, Anda harus menggunakan SQL Dinamis.
Perhatikan bahwa Anda juga tidak dapat membuka kursor menggunakan SQL Dinamis. Tetapi dalam kasus Anda, sepertinya tidak perlu kursor.
Jika saya memahami kode Anda dengan benar, Anda dapat menggunakan variabel pengguna dan mungkin mencapai apa yang Anda coba lakukan menggunakan 2 pernyataan yang disiapkan secara dinamis.
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;
Dan kemudian Anda memperbarui nilai menggunakan pernyataan di bawah ini
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;
Catatan:Silakan periksa sintaks. Saya tidak dapat mengujinya untuk memverifikasinya dengan tepat, tetapi saya harap Anda mengerti.