2017-05-21 70 views
0

我想在CakePHP中3.X如何在CakePhp 3.x中使用CASE語句?

SELECT 
    ... 
    (CASE WHEN declined_by = 1 THEN Customer WHEN declined_by = 2 THEN Admin WHEN declined_by = 3 THEN Both ELSE None END) AS `Declined_by` 
    ... 

執行下面的SELECT語句,但我並不想定製query`使用。我需要的代碼包括:

$query->newExpr()->addCase() 

和` - > eq()函數。

+3

那麼你面臨的問題是什麼?如何在食譜中描述:** https://book.cakephp.org/3.0/en/orm/query-builder.html#case-statements** – ndm

回答

0

好的運行原MySQL查詢!最後,我得到了我的答案。 謝謝大家。 這是我的最終查詢。

$query=$OrdersModel->find('all'); 

$decline_member = $query->newExpr() 
       ->addCase([$query->newExpr()->eq('declined_by','1'),$query->newExpr()->eq('declined_by','2'), 
       $query->newExpr()->eq('declined_by','3'),],['Customer','Admin','Both','None'],['string','string','string','string']); 
-2

您可以在CakePHP中

use Cake\Datasource\ConnectionManager; 
$connection = ConnectionManager::get('default'); 
$results = $connection->execute('YOUR QUERY')->fetchAll('assoc'); 
+0

正如我已經提到,我不想使用自定義查詢。我想使用像newExpr() - > addCase()和eq()這樣的函數。 –