Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Existe uma maneira de executar código dinamicamente no MySQL, semelhante à execução imediata no Oracle?


Na verdade, não funciona como o que eu escrevi. Eu apenas codifico como:
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;

Apenas tome cuidado com o nome da tabela, ela não deve ser substituída pelo placeholder. Então o @preparedstmt deve ser gerado com o método concat para fazer uma declaração, que é apenas substituir os parâmetros em condições pelo placeholder, mas não o nome da tabela.