Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Pass име на таблица за избор на курсора

Вярвам, че не можете да го направите по този начин.

За да постигнете това, трябва да използвате Dynamic SQL.

Имайте предвид, че не можете да отворите курсор и с помощта на Dynamic 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;

Забележка:Моля, проверете синтаксиса. Не мога да го тествам, за да го проверя точно, но се надявам, че схващате идеята.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. номер на порт на mysql сървъра

  2. Как да форматирам времето в "2:34 часа", "0:34 часа" и т.н. в MySQL

  3. Как да върнете JSON обект от PHP за четене от приложението за Android

  4. Как да обвържем потребителите с различни организации, университети, компании с различни роли?

  5. извличане на изображение в база данни mysql с помощта на vb