我正在尝试在ORDER BY子句中使用CASE运算符。
以下内容不起作用(忽略ORDER BY子句):
$this->Paginator->settings = array(
'order' => array("CASE
WHEN Transaction.created IS NOT NULL THEN Transaction.created
WHEN Transaction.created IS NULL THEN Query.created
END DESC")
);
(以下情况会很好:)
$this->Paginator->settings = array(
'order' => array('Query.created' => 'desc'),
);
在本地CakePHP 2.4查找方法中实现MySQL CASE的任何方法吗?
答案 0 :(得分:3)
尝试创建虚拟字段(假设您正在分页Transaction
)
$this->Transaction->virtualFields['my_created'] = "CASE
WHEN Transaction.created IS NOT NULL THEN Transaction.created
WHEN Transaction.created IS NULL THEN Query.created
END";
$this->Paginator->settings = array(
'order' => array('Transaction.my_created' => 'desc'),
);