Dans MySQL avant 5.5, vous ne pouvez pas mettre une variable dans le LIMIT
clause dans les procédures stockées MySQL. Vous devez l'interpoler dans une chaîne, puis exécuter la chaîne en tant que requête dynamique.
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;