2014-09-20 9 views
0

我在MySQL的三個表列選擇的第一條件的記錄和剩下的都是第二在mysql中

  1. ID
  2. pubdate的
  3. 狀態

我要顯示在下面的訂單記錄

首先顯示那些有

pubdate >=currdate() and status=1 and order by pubdate ASC 

然後表中沒有任何條件的所有剩餘記錄。

請幫助MySQL查詢

+0

你有沒有嘗試任何 – 2014-09-20 07:08:42

回答

0

我想嘗試用:

SELECT * FROM (SELECT * FROM mytable WHERE pubdate>=CURDATE() AND status=1 ORDER BY pubdate ASC) AS a 
     UNION all 
    SELECT * FROM (SELECT * FROM mytable WHERE pubdate<CURDATE() OR status!=1) AS b; 
+0

我用它,但它不顯示ORDER BY pubdate中的第一個結果記錄。 – SURAJ 2014-09-20 07:23:52

+0

你說得對。我要編輯我的答案,它應該工作。 – nicola 2014-09-20 07:32:35

0

給當條件滿足一些體重,並使用在ORDER BY:

SELECT *, 
    IF(pubdate >= CURRENT_DATE AND status = 1, 10, 0) weight 
FROM 
    thetable 
ORDER BY weight DESC, pubdate ASC 
相關問題