Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL Chuyển tên bảng để chọn con trỏ

Tôi tin rằng bạn không thể làm điều đó theo cách này.

Để đạt được điều này, bạn nên sử dụng Dynamic SQL.

Lưu ý rằng bạn cũng không thể mở con trỏ bằng Dynamic SQL. Nhưng trong trường hợp của bạn, dường như không cần con trỏ.

Nếu tôi hiểu đúng mã của bạn, bạn có thể chỉ cần sử dụng các biến người dùng và có thể đạt được những gì bạn đang cố gắng thực hiện bằng cách sử dụng 2 câu lệnh được chuẩn bị động.

  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;

Và sau đó bạn cập nhật các giá trị bằng cách sử dụng câu lệnh dưới đây

  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;

Lưu ý:Vui lòng kiểm tra cú pháp. Tôi không thể kiểm tra nó để xác minh chính xác nhưng tôi hy vọng bạn sẽ hiểu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thay đổi kiểu dữ liệu Cột Bảng trên nhiều hơn 1 cột?

  2. HighCharts và PHP json_encode. Dữ liệu từ MySQL. Không có dữ liệu trên biểu đồ

  3. xóa các bản sao trong sql và sửa đổi bảng quan hệ cho phù hợp

  4. mysql_fetch_assoc ():đối số được cung cấp không phải là tài nguyên kết quả MySQL hợp lệ

  5. Làm cách nào để ngăn Mysql Connector / J chuyển đổi múi giờ DATE và TIME?