Mysql
 sql >> Database >  >> RDS >> Mysql

C'è un modo per eseguire il codice in modo dinamico in MySQL, simile all'esecuzione immediata in Oracle?

In realtà non funziona come ho scritto. Scrivo solo codice come:

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;

Prenditi cura del nome della tabella, non dovrebbe essere sostituito con il segnaposto. Quindi il @preparedstmt dovrebbe essere generato con il metodo concat per fare un'istruzione, che è semplicemente sostituita dai parametri nelle condizioni con un segnaposto, ma non il nome della tabella.