Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gibt es eine Möglichkeit, Code dynamisch in MySQL auszuführen, ähnlich der sofortigen Ausführung in Oracle?

Es funktioniert tatsächlich nicht wie das, was ich geschrieben habe. Ich codiere nur wie folgt:

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;

Achten Sie nur auf den Tabellennamen, er sollte nicht durch den Platzhalter ersetzt werden. Daher sollte @preparedstmt mit der concat-Methode generiert werden, um eine Anweisung zu erstellen, die nur die Parameter in Bedingungen durch Platzhalter ersetzt, aber nicht den Tabellennamen.