2016-06-16 25 views
4

我有表調用用戶獲得最大的大寫金額排,像CakePHP的3:如何從一個表

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'), 
    ]); 

回答

13

最簡單的方法

$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()查詢對象上的一條記錄:使用CakePHP 3

$user = $user->first(); 
$amount = $user->amount; 
-1

最簡單的方法:

$this->Model->find('all')->select('amount')->hydrate(false)->max('amount') 

將導致包含最大的數組該表格列中的金額。