繁体   English   中英

在Phalcon中执行查询时出错,但查询适用于phpMyAdmin

[英]Error in executing query in Phalcon but query works on phpMyAdmin

我有以下表格结构

        headline
        is_user_article
        is_approved
        updated_date
        created_date  

我想以一种方式对记录进行排序

  1. 如果is_approved = 0,则按is_user_article DESC,updated_date DESC,created_date DESC排序
  2. 如果is_approved = 1,则按更新日期DESC,创建日期DESC排序

这意味着我首先要让那些用户提交的文章(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执行时,查询Phalcon's modelManager 我收到"Syntax error, unexpected token WHEN near is_approved=1"

但是,如果我在phpMyadmin中执行此查询,将NewsRoom NewsRoom\\Articles\\Models\\Articles替换为实际的表名tbl_articles ,则它可以正常工作。

有人可以帮我吗?

从更改SQL

 CASE WHEN is_approved = 1 THEN updated_date END DESC,

 CASE is_approved WHEN 1 THEN updated_date END DESC,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM