Het werkt eigenlijk niet zoals ik schreef. Ik codeer gewoon als:
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;
Zorg gewoon voor de tabelnaam, deze mag niet worden vervangen door de tijdelijke aanduiding. Dus de @preparedstmt moet worden gegenereerd met de concat-methode om een verklaring af te leggen, die alleen de parameters in de voorwaarden vervangt door de tijdelijke aanduiding, maar niet de tabelnaam.