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.