我有以下表结构
headline
is_user_article
is_approved
updated_date
created_date
我想以这样的方式对记录进行排序
这意味着我希望这些文章最初是用户提交的(is_user_article = 1)并且未被批准(is_approved = 0),然后是按更新日期和创建日期排序的其他记录。
我有以下查询
<?php
$phql = "SELECT headline, is_user_article, created_date, updated_date, is_approved
FROM NewsRoom\Articles\Models\Articles ORDER BY
CASE is_approved WHEN 0 THEN is_user_article END DESC,
CASE WHEN is_approved = 1 THEN updated_date END DESC,
updated_date DESC,
created_date DESC";
$articles = $this->modelsManager->executeQuery($phql);
?>
问题
使用Phalcon's modelManager
执行时,查询无效。我得到"Syntax error, unexpected token WHEN near is_approved=1"
但是,如果我在phpMyadmin中用实际表名NewsRoom\Articles\Models\Articles
替换tbl_articles
执行此查询,则它可以正常运行。
任何人都可以帮我这个。
答案 0 :(得分:1)
从
更改SQL CASE WHEN is_approved = 1 THEN updated_date END DESC,
到
CASE is_approved WHEN 1 THEN updated_date END DESC,