在Rails应用程序中,我使用它来从MySQL表中获取随机行:
contact = Contact.find(:all, :limit => 1, :order => 'RAND()')[0]
即使表只有大约20,000行,也需要几秒钟。有谁知道更快的方式?
更新
还尝试在控制台中运行SQL ...
SELECT * FROM `contacts` ORDER BY RAND() LIMIT 1
它仍然需要很长时间,比如两三秒钟。
答案 0 :(得分:2)
我认为我的第一个答案对你没有帮助。 Perhaps this Article will
答案 1 :(得分:0)
从ruby获取一个rand,然后将其转换为主键