sql >> Base de Datos >  >> RDS >> Mysql

¿Hay alguna manera de ejecutar código dinámicamente en MySQL, similar a ejecutar inmediatamente en Oracle?

En realidad, no funciona como lo que escribí. Solo 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;

Solo tenga cuidado con el nombre de la tabla, no debe reemplazarse con el marcador de posición. Por lo tanto, @preparedstmt debe generarse con el método concat para hacer una declaración, que simplemente reemplaza los parámetros en condiciones con marcador de posición, pero no el nombre de la tabla.