Ve skutečnosti to nefunguje tak, jak jsem napsal. Jen kóduji takto:
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;
Jen se postarejte o název tabulky, neměl by být nahrazen zástupným symbolem. Takže @preparedstmt by měl být generován pomocí metody concat, aby bylo možné provést prohlášení, které pouze nahradí parametry v podmínkách zástupným symbolem, ale nikoli názvem tabulky.