簡體   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