按ID分组和按日期排序

时间:2011-07-28 11:46:22

标签: date cakephp group-by

$lastComments = $this->Comment->find('all', array('fields' => array('Comment.news_id', 'Comment.date', 'Comment.content'),
                'group' => array('Comment.news_id, Comment.date'),    
                'order' => array('Comment.date DESC'))
        );

我们的想法是从独特主题中获取最新评论(1条评论 - 1个主题)。

此代码不处理唯一ID(唯一主题),我该如何解决?

区别不起作用。

$lastComments = $this->Comment->find('all', array('fields' => array('Comment.news_id', 'Comment.date', 'Comment.content'),
                'group' => array('Comment.news_id'),    
                'order' => array('Comment.date DESC'))
        );

此代码将返回唯一主题,但按日期排序不起作用:/

4 个答案:

答案 0 :(得分:1)

我认为这会对你有所帮助......试试这个

$this->Post->find('all',array( 'order' => array('id DESC') )  ); 

答案 1 :(得分:1)

$this->Comment->find('first', array('order'=>array('Comment.id DESC')));

答案 2 :(得分:0)

你提到DISTINCT不起作用。您是否在CakePHP中使用DISTINCT语法时遇到问题,或者是否正确使用DISTINCT并未产生正确的结果?我试试:

$lastComments = $this->Comment->find('all', array('fields' => 
                                                    array('DISTINCT Comment.news_id', 'Comment.date', 'Comment.content'),
                                                 'order' => array('Comment.date DESC'))
    );

答案 3 :(得分:-1)

如果它可以提供帮助,我遇到了没有cakephp的相同问题,解决方案是使用 max(日期)

在cakephp中出现类似的事情:

$lastComments = $this->Comment->find('all', 
array('fields' => array('Comment.news_id', 
                        'Comment.date', 
                        'Comment.content'),
                'group' => array('Comment.news_id'),    
                'order' => array('max(Comment.date) DESC'))
        );