Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL Lulus nama tabel ke kursor pilih

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. IllegalArgumentException:Jenis tidak boleh nol

  2. Tabel Perbandingan kolom Tanggal dengan daftar tanggal yang dihasilkan - MYSQL

  3. Validasi url untuk multibahasa - bahasa Jepang

  4. Masalah Desain Prosedur Tersimpan MySQL. Rekusi atau Hirarki?

  5. Lewati parameter ke skrip MySQL