Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy istnieje sposób na dynamiczne wykonanie kodu w MySQL, podobnie jak wykonanie natychmiastowe w Oracle?

W rzeczywistości nie działa tak, jak napisałem. Po prostu koduję:

set @preparedstmt = concat('SELECT tid, LENGTH(message) len FROM ? where tid=? and first=1');
prepare stmt from prepared_stmt;
execute stmt using v_tid;
drop prepare stmt;

Wystarczy zadbać o nazwę tabeli, nie należy jej zastępować symbolem zastępczym. Tak więc @preparedstmt należy wygenerować metodą concat, aby wykonać oświadczenie, w którym po prostu zastępujemy parametry w warunkach symbolem zastępczym, ale nie nazwę tabeli.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można użyć opisu nazwy kolumny w mysql

  2. Jak mogę chronić się przed atakami typu SQL injection za pomocą DBI Perla?

  3. błąd w składni SQL .. w pobliżu „klucza”

  4. Wyszukaj zakres Współrzędne szerokości/długości geograficznej

  5. Jak wybrać dwie dodatkowe kolumny z innej tabeli na podstawie wartości w tabeli głównej?