我对于为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在创建类似于body的函数时抛出错误.但是,当我使用硬编码的数字作为OFFSET时,它工作得很好.
有人可以就这个话题说清楚.
我在Windows机器上运行MySQL 5.0.45.
谢谢