2009-10-02 85 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