Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Usando variáveis ​​como OFFSET em instruções SELECT dentro das funções armazenadas do mysql


No MySQL antes de 5.5, você não pode colocar uma variável no LIMIT cláusula em procedimentos armazenados do MySQL. Você precisa interpolar em uma string e depois executar a string como uma consulta dinâmica.
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;