2016-03-31 15 views
1

MySQL sorgum için doğru ORDER BY kodunu almaya çalışıyorum, ancak düzgün sipariş alamıyorum.İlk sütuna göre MySQL siparişi, ikinci sütun tarafından sıralı

Ben iki sütun vardır:

  1. breaking_news = değerlerinin NULL veya 1 olan
  2. news_published_dt değerleri DATETIME

DATETIME tarafından breaking_news NOT NULL sıralanmış Bir çeşit nedenle ilk çıkış vardır ki nasıl edilir = ve sonra kalanlar sadece DATETIME tarafından mı sipariş ediliyor?

Bu denedim, ama bana hiçbir çıkış

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

SELECT * FROM tableName SİPARİŞE by breaking_news DESC, news_published_dt ASC (** GÜNCELLEME **) –

+0

@MalikAsif İşe yaradı, teşekkürler! :) Lütfen cevap yazınız – PhyCoMath

cevap

1

bu aradığınız gibi görünüyor:

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

KULLANIMI n.breaking_news SONRA n.breaking_news BAŞKA 'zzzzzzzzzzzzzzzzzzzzzz' IS NOT NULL ÖRNEĞİ Bu SİPARİŞ END DESC n.news_published_dt

İlgili konular