我对编写MySQL数据库的存储函数这个主题还很陌生,因此我不确定我正在尝试做的事情是否可能。
我需要一个函数,它将从表格中随机返回一行的列。我不想使用ORDER BY RAND()方法来实现这一点,相反我会这样做:
DECLARE MAX_COUNT INT DEFAULT 120000;
DECLARE rand_offset INT;
DECLARE str_rnd_word VARCHAR(255);
SET rand_offset = FLOOR((RAND() * MAX_COUNT));
SELECT word INTO str_rnd_word FROM all_words LIMIT 1 OFFSET rand_offset ;
RETURN str_rnd_word;
当创建具有该样的函数主体时,MySQL会抛出错误。但是,当我使用硬编码数字作为 OFFSET 时,它就可以正常工作。
有人能解释一下这个话题吗?
我在Windows计算机上运行MySQL 5.0.45。
谢谢 (xiè xiè)