首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cakephp find('all')获取最后一个匹配的记录

问cakephp find('all')获取最后一个匹配的记录
EN

Stack Overflow用户
提问于 2015-02-09 14:02:18
回答 3查看 1.4K关注 0票数 1

​

​

大家好,我想在广播表上执行$ this -> model ->find(' all ');,在广播表上,我只需要获取每个模型的最后一个广播id,比如模型12的4和模型13的6。我已经通过使用一个简单的mysql查询做到了这一点,如下所示。

SELECT * FROM broadcasts WHERE id IN(SELECT MAX(id) FROM broadcasts GROUP BY model_id);

但我想知道如何在cakephp中实现这一点。

请提供您宝贵的反馈意见。

EN

回答 3

Stack Overflow用户

发布于 2015-02-09 14:34:58

Mysql查询你应该使用mysql查询来获取记录查询是

代码语言:javascript
复制
SELECT max(id),model_id FROM `model` group by model_id

输出

​

​

Cakephp find查询

代码语言:javascript
复制
<?php
  $data=$this->Brodcast->find('all',
    'fields' => array('MAX(id) AS maxid', 'model_id'), 
    'group'=>'model_id'
    );
  ?>
票数 6
EN

Stack Overflow用户

发布于 2015-02-09 18:57:11

您好,您应该尝试将您的查询重写为:

代码语言:javascript
复制
$options['fields'] = array( 'MAX(id) AS maxid', 'model_id' );
$options['group'] = array( 'model_id' );
$this->ModelName->find( 'all', $options );
票数 0
EN

Stack Overflow用户

发布于 2015-03-05 18:21:18

使用这个可以很好的工作:-

代码语言:javascript
复制
<?php
      $data=$this->Brodcast->find('all',
        'fields' => array('MAX(id) AS maxid', 'model_id'), 
        'group'=>'model_id'
        );
      ?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28403683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档