Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzo di variabili come OFFSET nelle istruzioni SELECT all'interno delle funzioni memorizzate di mysql

In MySQL prima della 5.5, non puoi inserire una variabile nel LIMIT clausola nelle procedure memorizzate MySQL. Devi interpolarlo in una stringa e quindi eseguire la stringa come query dinamica.

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;