在我们的数据库中,它们不是空日NULL
,而是'0000-00-00'
(我知道,它很糟糕)。我如何订购这些,以便非'0000-00-00'
的日期首先并订购ASC
,然后'0000-00-00'
的空日期会在之后?
谢谢!
答案 0 :(得分:11)
...
ORDER BY CASE WHEN YourDateColumn = '0000-00-00' THEN 2 ELSE 1 END,
YourDateColumn
答案 1 :(得分:3)
尝试下面的内容:
SELECT * FROM your_table ORDER BY (date_column='0000-00-00'), date_column ASC
OR
select * from your_table
order by if(date_column='0000-00-00',1,0),date_column;
答案 2 :(得分:1)
您可以使用CASE WHEN
http://dev.mysql.com/doc/refman/5.0/en/case-statement.html
... ORDER BY (CASE WHEN date = '0000-00-00' THEN 1 ELSE 0 END) ASC, otherColumns asc, ...
答案 3 :(得分:1)
ORDER BY (DateColumn = 0)
, DateColumn