0

我有以下模型:

$values = $this->PtlUserdata->find('all', array(

    'fields' => array(

        'PtlUserdata.field', 
        'PtlUserdata.value',
        'PtlUserdata.timestamp'

     ), 

     'conditions' => array(

         'PtlUserdata.user_id' => $user->get('id'),

     ),

     'order' => array('PtlUserdata.timestamp' => 'DESC'),
     'group' => array('PtlUserdata.field')

));

我正在尝试按时间戳对结果进行排序,然后按字段对结果进行分组,这样我就可以获得具有该字段名称的最新记录。

有谁知道如何做到这一点是cakephp?

在此先感谢您的帮助,非常感谢:)

4

2 回答 2

0

这是否有效:

$values = $this->PtlUserdata->find('all', array(

'fields' => array(

    'PtlUserdata.field', 
    'PtlUserdata.value',
    'max(PtlUserdata.timestamp)'

 ), 

 'conditions' => array(

     'PtlUserdata.user_id' => $user->get('id'),
     'PtlUserdata.timestamp' => 'max(PtlUserdata.timestamp)',
 ),

 'group' => array(
      'PtlUserdata.field',
      'PtlUserdata.timestamp'
      )

));

我没有机会对此进行测试,但您肯定需要按PtlUserdata.timestamp.

于 2012-05-23T17:31:15.127 回答
0

这是数据库的默认行为。您将不得不想出某种解决方法来做到这一点。

一个想法:CakePHP:按 ID 分组和按日期排序

于 2012-05-23T14:36:39.240 回答