2016-03-31 13 views
1

私のMySQLクエリで正しいORDER BYを取得しようとしていますが、正しい注文では取得できません。第2列でソートされた第1列によるMySQLの注文

は、私は2つの列があります。

  1. breaking_news =値はNULLまたは1ある
  2. news_published_dt値はDATETIME

DATETIMEbreaking_news NOT NULLをソート私はソートので、最初の出力がされていることをどのようにしています=その後残りは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

使用n.breaking_newsがTHEN n.breaking_news ELSE 'zzzzzzzzzzzzzzzzzzzzzz' NULLでない場合BYこの ORDER ENDは、DESC n.news_published_dt

関連する問題