the*_*s11 8 postgresql ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2
我试图从postgres数据库中提取行,我可以将它们拉出来但是当我尝试随机时,我会在随机附近得到一个语法错误.
错误
PG::Error: ERROR: syntax error at or near "rand"
LINE 1: ... "hashtags".* FROM "hashtags" ORDER BY tweet_id rand LIMIT...
^
: SELECT "hashtags".* FROM "hashtags" ORDER BY tweet_id rand LIMIT 4
Run Code Online (Sandbox Code Playgroud)
把它拉出来的代码
<div id="hashtags">
<% Hashtag.order("tweet_id desc").limit(4).each do |hashtag| %>
<blockquote><%= hashtag.content %></blockquote>
<div class="from">— @<%= hashtag.screen_name %></div>
<% end %>
</div>
Run Code Online (Sandbox Code Playgroud)
hrr*_*hrr 19
要从数据库中获取随机条目,您有几个选项.这是一对夫妇
第一种方法
这将使用SQL从数据库中取出4个随机条目.
Hashtag.order("RANDOM()").limit(4)
Run Code Online (Sandbox Code Playgroud)
第二种方法:
您还可以使用ActiveRecord sample()方法检索4个随机行.
Hashtag.all.sample(4)
Run Code Online (Sandbox Code Playgroud)
由于速度和效率; 我制作了一个迷你基准测试并在我自己的数据库上测试了两个命令(包含500条记录).第一种方法(如预期的那样)比第二种方法快两倍以上.
SQL: 1.8ms
Sample Method: 4.2ms
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4792 次 |
| 最近记录: |