Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation de variables comme OFFSET dans les instructions SELECT à l'intérieur des fonctions stockées de mysql

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;