簡體   English   中英

Rails 3-ActiveRecord + MySQL和RANDOM函數

[英]Rails 3 - ActiveRecord + MySQL and RANDOM function

我需要從數據庫中獲取3個隨機項,我有以下查詢:

User.joins(:user_cities).where("user_cities.city_id = ?", > @city.id).offset(rand(User.count)).limit(3)

這會產生我:

SELECT `users`.* FROM `users` INNER JOIN `user_cities` ON `user_cities`.`user_id` = `users`.`id` WHERE (user_cities.city_id = 1) LIMIT 3 OFFSET 15

RAND功能丟失的地方? 當我遠程OFFSET 15 ,此查詢返回空集,因此我得到了3個結果,但每次都相同。

ActiveRecord中的RAND函數有什么問題?

ActiveRecord沒有任何rand方法。 您正在使用ruby Kernal類提供的rand方法。

當你使用rand(num)ruby時,找到一個介於0和該數字之間的隨機數。

要檢索三個隨機記錄,您可以執行

User.joins(:user_cities).where("user_cities.city_id = ?", > @city.id).order('rand()').limit(3)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM