2016-06-02 2 views
1

나는 latest date 다음에 status=wait, 그 다음은 status=cancel 그리고 마지막으로는 status=enrolled에 의해 일부 레코드를 주문하려고합니다.컬럼의 속성에 의한 SQL 순서

현재 내가이 쿼리하지만

SELECT * FROM demo ORDER BY date desc,status='wait' desc,id desc,status='enrolled' asc,status='cancel' asc LIMIT 10 

나에게 예상 된 결과를 포기하지 않을이 쿼리가, 나 좀 도와주세요를 사용하고

# Name Type Collation Attributes Null Default 
    1 id int(11) No None AUTO_INCREMENT Change Change Drop Drop 

    2 name varchar(100) latin1_swedish_ci  No None   



    3 status varchar(256) latin1_swedish_ci  No wait  


    4 date datetime   No CURRENT_TIMESTAMP 

을 SqlDatabase.

답변

1

당신은 약간의 순서를 혼합했습니다, 이것은 당신이 질문에서 제공 한 논리에 따라 정렬해야합니다.

SELECT * FROM demo 
ORDER BY date desc, 
     status='wait' desc, 
     status='enrolled' desc, 
     status='cancel' desc, 
     id desc 
LIMIT 10 
+0

고맙습니다. –