2011-10-18 163 views
1

我有一個查詢(mysql)的問題。 我不得不order by date ASC問題是我也有空表中的日期。 Mysql將它們設置爲0000-00-00,所以當我按日期排序時,首先顯示這些日期,但我需要在末尾放置「空日期」,我該怎麼辦?如何按日期訂購?

例子:

0000-00-00 
2011-01-01 
2010-12-12 

查詢:.... ORDER BY date ASC

結果應該是:

2010-12-12 
2011-01-01 
0000-00-00 

感謝

回答

5
ORDER BY IF(date = '0000-00-00', 1, 0) ASC, date ASC 
+0

@Marco是的,真正的日期第一,所以不應該真正的日期是0時,順序由asc? :) 再想一想? – xdazz

+0

@SalmanA:是的,正確的,我的錯。 +1爲xdazz!也許再睡一會兒可以幫助我;) – Marco

0

假設你正在做的:

SELECT * 
FROM table 
ORDER BY date ASC 

你可以做

SELECT *, IF(date > 0, 1, 0) AS has_date 
FROM table 
ORDER BY has_date ASC, date ASC 

我相信會爲你做。