Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden von Variablen als OFFSET in SELECT-Anweisungen in den gespeicherten Funktionen von mysql

In MySQL vor 5.5 können Sie keine Variable in LIMIT einfügen -Klausel in gespeicherten MySQL-Prozeduren. Sie müssen es in einen String interpolieren und den String dann als dynamische Abfrage ausführen.

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;