En fait, cela ne fonctionne pas comme ce que j'ai écrit. Je code juste comme :
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;
Prenez juste soin du nom de la table, il ne doit pas être remplacé par l'espace réservé. Ainsi, le @preparedstmt doit être généré avec la méthode concat pour faire une déclaration, qui remplace simplement les paramètres dans les conditions par l'espace réservé, mais pas le nom de la table.