Всъщност не работи като това, което написах. Просто кодирам като:
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;
Просто се погрижете за името на таблицата, то не трябва да се заменя с контейнера. Така че @preparedstmt трябва да се генерира с метода concat, за да се направи изявление, което просто заменя параметрите в условия с контейнер, но не и името на таблицата.