【发布时间】:2014-05-13 14:42:57
【问题描述】:
所以,我想在显示数据时做一些随机排序,此时我的代码是:
Timsheet.limit(1).offset(RANDOM(Timesheet.count)).first
我知道 postgresql 的 (RANDOM) 语法不同于 MYSQL 的 (RAND()) 和 Oracles (dbms_random.value) 语法。
我只是想确认我的代码是正确的,据我了解,它正在抓取第一行,并以随机顺序偏移数据?
请帮忙解决一下,谢谢!
【问题讨论】:
-
我想你想要
Timsheet.order('RANDOM()').first:这将产生一个随机顺序并选择第一条记录:很好你会得到一个随机记录。 --- 使用你的代码(带偏移量)总是在我的 IRB 控制台中返回相同的记录 -
您应该能够在您的日志中看到从您的 ruby 代码生成的 sql:这始终是一个很好的健全性检查。看着它,我会说它会从表中抓取一个随机的时间表记录。
-
其实可能不是。看到这个问题:stackoverflow.com/questions/5297396/…
标签: sql ruby-on-rails ruby-on-rails-3 postgresql ruby-on-rails-4