4
我有一個名爲Post模型,一個叫票列,並將它具有職位選擇不適用使用情況,任意對象的Rails
的一個大數字我想選出n個職位隨機有> = X的選票。 n與帖子數量相比非常小
這樣做的最佳方式是什麼?我嘗試了一些看起來效率很低的方法。謝謝
我有一個名爲Post模型,一個叫票列,並將它具有職位選擇不適用使用情況,任意對象的Rails
的一個大數字我想選出n個職位隨機有> = X的選票。 n與帖子數量相比非常小
這樣做的最佳方式是什麼?我嘗試了一些看起來效率很低的方法。謝謝
如果你使用的是MySQL,你可以隨機排列所有滿足大於標準的帖子,並選擇前n個。
的實際查詢看起來像
SELECT * FROM posts WHERE votes >= x ORDER BY rand() LIMIT n
沒有測試過這一點,但這樣的事情應該在Rails的工作:
Post.all(:conditions => ["votes >= ?", x], :order => "rand()", :limit => n)
這是不行的,因爲沒有「票」帖子表中的列。 – 2010-01-31 01:19:07
你的意思是它應該是'vote'而不是? – Anurag 2010-01-31 01:51:51
我發佈了一個新問題,詢問此操作是如何在內部執行的http://stackoverflow.com/questions/2171082/in-which-order-rails-does-the-db-queries – Victor 2010-01-31 08:50:05