Det virker faktisk ikke som det jeg skrev. Jeg koder bare som:
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;
Bare pas på tabelnavnet, det skal ikke erstattes med pladsholderen. Så @preparedstmt bør genereres med concat-metoden for at lave en erklæring, som bare erstatter parametrene i betingelser med pladsholder, men ikke tabelnavnet.