2016-03-31 158 views
1

我正在嘗試爲我的MySQL查詢獲得正確的ORDER BY,但是我無法通過正確的方式獲取訂單。MySQL按第一列排序,按第二列排序

我有兩列:

  1. breaking_news =值NULL1
  2. news_published_dt =值DATETIME

我怎麼能進行排序,以便第一輸出是breaking_news NOT NULL排序由DATETIME ,然後剩下的只是DATETIME訂購?

我已經試過這一點,但它給了我無輸出

ORDER BY CASE WHEN n.breaking_news IS NOT NULL THEN 1 ELSE 2 END, n.news_published_dt DESC 
+2

SELECT * FROM tableName ORDER BY breaking_news DESC,news_published_dt ASC(** UPDATED **) –

+0

@MalikAsif工作,謝謝! :)請張貼答案 – PhyCoMath

回答

1

的樣子,你正在尋找這樣的:

SELECT 
    * 
FROM 
    tableName 
ORDER BY 
    breaking_news DESC, 
    news_published_dt ASC 
0
SELECT * FROM table_name ORDER BY news_published_dt DESC 
0
select * from 
(select *, 1 Shortby from table 1 where (breaking_news is null) 
union all 
select *, 2 Shortby from table 1 where (breaking_news=1) 
) a 
order by Shortby ,news_published_dt Desc 
-1

使用此 ORDER BY CASE WHEN n.breaking_news IS NOT NULL THEN n.breaking_news ELSE 'zzzzzzzzzzzzzzzzzzzzzz' END,n.news_published_dt DESC

相關問題