5.5より前のMySQLでは、変数をLIMIT
に入れることはできません。 MySQLストアドプロシージャの句。文字列に補間してから、動的クエリとして文字列を実行する必要があります。
SET rand_offset = FLOOR(RAND() * (SELECT COUNT(*) FROM all_words));
SET @sql = CONCAT('SELECT word INTO str_rnd_word FROM all_words LIMIT 1 OFFSET ', rand_offset);
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;