2009-10-02 118 views
1

假設mysql表中有3個字段:id,word和date。 單詞字段不是唯一字段,因此很多記錄具有相同的單詞。 那麼,我如何才能找出哪個單詞在記錄中重複最多?最重複的5個字..查找最多的記錄。

+0

你是什麼意思「最多發生5條記錄」,最新創建的記錄? – khelll 2009-10-02 15:43:18

+0

在一個字段中,數據不是唯一的......以及如何找到具有相同值的最多記錄數 – Maxsy 2009-10-02 17:54:30

+0

你能給出一個建議嗎? – Maxsy 2009-10-02 17:55:12

回答

1
Model.find(:all, :conditions => ["created_at > ?", DateTime.now - 2.hours], :limit => 5, :order => "desc") 
0
class Model < ActiveRecord::Base 

    named_scope :recent, :conditions => ["created_at > ?", DateTime.now - 2.hours], :limit => 5, :order => "desc" 

end 

Model.recent 
1

兩個問題的答案似乎上面打印只是最近的記錄。我認爲最頻繁的你需要使用更多的SQL。 :-(

假設你有一個名爲Message,其中一個名爲「文本」其中包含的信息場模型...

Message.find(:all, :select => '*, COUNT(*) AS count', 
        :group => 'text', 
        :order => 'count DESC', 
        :limit => 5) 

聲明:我從來沒有試過這樣做,除了驗證碼本身運行

+0

這是真的嗎? – Lichtamberg 2009-10-02 13:26:32

+0

這取決於他的意思是「最多發生5條記錄」...... – khelll 2009-10-02 15:43:51

+1

一個人會假設發生得最多的5個。 – Trejkaz 2009-10-03 08:49:03