Ik geloof dat je het op deze manier niet kunt doen.
Om dit te bereiken, moet u Dynamic SQL gebruiken.
Merk op dat u ook geen cursor kunt openen met Dynamic SQL. Maar in jouw geval lijkt er geen cursor nodig te zijn.
Als ik je code goed begrijp, kun je gewoon gebruikersvariabelen gebruiken en waarschijnlijk bereiken wat je probeert te doen met behulp van 2 dynamisch voorbereide instructies.
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;
En dan werk je de waarden bij met behulp van de onderstaande verklaring
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;
Opmerking:controleer de syntaxis. Ik kan het niet testen om het precies te verifiëren, maar ik hoop dat je het idee snapt.