2016-10-21 8 views
0

を上で動作し、私は、このような方法でレコードをソートしたいエラーは、私はテーブルの構造以下のいるphpMyAdminの

 headline 
     is_user_article 
     is_approved 
     updated_date 
     created_date 

その

  1. is_user_articleでソート= 0を、is_approved場合DESC、updated_date DESC、created_date DESC
  2. = 1、ソートupdated_date DESCすることにより、created_date DESC
is_approved場合

これは、ユーザが投稿した(is_user_article = 1)、承認されていない(is_approved = 0)これらの記事を最初に更新した日付と作成日で注文された残りの記事を追加することを意味します。

私はPhalcon's modelManagerを使用して実行する場合、クエリが作業をdoesnotクエリ

<?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); 
?> 

PROBLEM

次ています。私は、実際のテーブル名tbl_articlesNewsRoom\Articles\Models\Articlesを置き換えるのphpMyAdminでこのクエリを実行した場合、それは完璧に動作、しかし"Syntax error, unexpected token WHEN near is_approved=1"

を取得します。

誰でも助けてくれますか?

答えて

1

CASE is_approved WHEN 1 THEN updated_date END DESC, 

CASE WHEN is_approved = 1 THEN updated_date END DESC, 

からあなたのSQLを変更

関連する問題