मेरा मानना है कि आप इसे इस तरह से नहीं कर सकते।
इसे प्राप्त करने के लिए, आपको डायनेमिक 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;
नोट:कृपया सिंटैक्स की जाँच करें। मैं इसे ठीक से सत्यापित करने के लिए इसका परीक्षण नहीं कर सकता, लेकिन मुझे आशा है कि आपको यह विचार मिल गया होगा।