我有表调用用户,例如

id name amount   created 
1   a   100     6-16-2016 
2   b   200     5-16-2016 

我需要最大满行数,我尝试了下面的代码,但语法错误。
  $user = $this->Users->find('all',[ 
         'fields' => array('MAX(Users.amount)  AS amount'), 
  ]);  

请您参考如下方法:

最简单的方法

$user = $this->Users->find('all',[ 
   'fields' => array('amount' => 'MAX(Users.id)'), 
]);  
使用选择而不是选项数组
$user = $this->Users->find() 
    ->select(['amount' => 'MAX(Users.id)']);  
利用蛋糕的SQL函数
$query = $this->Users->find(); 
$user = $query 
    ->select(['amount' => $query->func()->max('Users.id')]); 
以上三个都给出相同的结果
如果您想拥有一条记录,则必须在查询对象上调用 ->first():
$user = $user->first(); 
$amount = $user->amount; 


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!