我如何按日期订购?

时间:2011-10-18 06:18:55

标签: php mysql

我遇到查询问题(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

由于

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分: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

我相信会为你做到这一点。