[英]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.