如何在CakePhp 3.x中使用CASE语句?

时间:2017-05-21 06:18:48

标签: php cakephp

我想在CakePHP 3.X中执行以下select语句

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`
    ...

但我不想使用自定义查询。我需要包含以下内容的代码:

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

和` - > eq()函数。

2 个答案:

答案 0 :(得分:0)

好的! 最后,我得到了答案。 谢谢大家。 这是我最后的询问。

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

答案 1 :(得分:-2)

您可以在cakephp中运行原始mysql查询

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