2016-10-21 5 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 내림차순 정렬 updated_date에 의해 DESC = 1 is_approved 경우
  2. , CREATED_DATE의 DESC

즉, 사용자가 제출 한 항목 (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); 
?> 

문제

다음있다. 내가 phpMyAdmin을 실제 테이블 이름 tbl_articles으로 NewsRoom\Articles\Models\Articles 대체이 쿼리를 실행하는 경우, 그것은 완벽하게 작동, 그러나

"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을 변경