为order by子句准备cakephp案例

时间:2013-10-03 08:04:27

标签: mysql cakephp

我准备了一个满足我要求的sql语句但我需要转换那个sql   声明到cakePHP模型找到条件我不知道如何准备那一个请帮助   我

SQL查询:

select id,text,is_file,order from kmp_contents 
where parent_id=1873
order by case 
when is_file=1 then text
when is_file=0 then order
end asc;

1 个答案:

答案 0 :(得分:0)

您可以尝试:

$this->KmpContent->find(
    'conditions' => array('KmpContent.parent_id' => 1873),
    'fields' => array('KmpContent.id', 'KmpContent.text', 'KmpContent.is_file', 'KmpContent.order'),
    'order' => array('KmpContent.case ASC', 'WHEN is_file=1 THEN KmpContent.text WHEN is_file=0 THEN KmpContent.order ASC')
);

order键在ORDER BY语句周围包含所提供数组中提供的条件。

如果这不起作用,您可以始终使用Model::query()进行复杂查询。