0
A
回答
2
如果表中沒有包含太多的條目下面將返回4個隨機選擇的用戶:
User.find(:all, :order => 'RANDOM()', :limit => 4)
然而,這並不比例的,因爲它會隨機整個表。對於有很多列的表,這可能是非常密集的IO。
另一種方法是隻對id
進行隨機化,然後只選擇那些行。沿着線的東西:
# Return an array of ids randomly drawn from User
ids = ActiveRecord::Base.connection.select_values(
User.send(:construct_finder_sql, { :select => 'id',
:order => 'RANDOM()',
:limit => 4
}))
# Return the users drawn from above
users = User.find(:all, :conditions => "id IN (#{ids.join(',')})")
如果用這個去了,我想將其封裝爲User
一個類的方法。
相關問題
- 1. 隨機用戶名
- 2. 隨機位置
- 3. 隨機AccessViolationExceptions使用位圖
- 4. 可視化隨機四維數據集
- 5. Java的隨機()四捨五入
- 6. 顯示四個隨機圖像
- 7. 隨機位置不是隨機的[vb.net]
- 8. CAReplicatorLayer隨機位置
- 9. 隨機定位框
- 10. 隨機TextView位置
- 11. 選擇隨機用戶sql
- 12. 獲取隨機用戶名
- 13. 獲取隨機用戶
- 14. 機械化隨機用戶代理
- 15. RoR電子郵件與第四版書
- 16. 隨機定位圖像
- 17. EXC_BAD_ACCESS隨機位置iOS 9
- 18. 隨機整數移位
- 19. 4位隨機數C++
- 20. 隨機定位的元素
- 21. 隨機精靈位置
- 22. 隨機位置的陣列
- 23. BaseExpandableListAdapter - getChildView隨機位置
- 24. jQuery:隨機定位的div
- 25. 64位隨機種子
- 26. 隨機位在範圍
- 27. 在隨機位置繪畫
- 28. 隨機位置上的Imageview
- 29. 復位 '隨機' 數學
- 30. PHP 64位隨機數
這就是我得到的:SQLite3 :: SQLException:沒有這樣的函數:rand: – Brian 2010-09-08 01:57:27
對於SQLite,函數是'RANDOM()'。 – rjk 2010-09-08 02:10:40