Postgresql Rails:选择一定范围内的随机记录?

时间:2015-05-18 03:34:49

标签: ruby-on-rails postgresql activerecord

我在控制器中有以下代码来选择随机照片:

@photo1 = @contest.photos.limit(1).order("RANDOM()")

我希望选择另一张随机照片作为@ photo2,但其得分属性必须是@ photo1得分的+/- 400。我该怎么做?

可选:我宁愿@ photo2在@ photo1分数的+/- 200范围内,如果没有,则搜索+/- 400

1 个答案:

答案 0 :(得分:3)

您可以将where与范围一起使用以生成BETWEEN语句。

Photo.where(score: ((@photo1.score-200)..(@photo1.score+200)))
     .order("RANDOM()").take