В нашей базе данных вместо создания пустых дат NULL они '0000-00-00' (я знаю, это отстой). Как я могу заказать их так, чтобы даты, которые не '0000-00-00', были сначала и были заказаны ASC, а затем следовали пустые даты '0000-00-00'?
NULL
'0000-00-00'
ASC
Спасибо!
... ORDER BY CASE WHEN YourDateColumn = '0000-00-00' THEN 2 ELSE 1 END, YourDateColumn
Попробуйте ниже:
SELECT * FROM your_table ORDER BY (date_column='0000-00-00'), date_column ASC
ИЛИ
select * from your_table order by if(date_column='0000-00-00',1,0),date_column;
ORDER BY (DateColumn = 0) , DateColumn
Вы можете использовать CASE WHEN http://dev.mysql.com/doc/refman/5.0/en/case-statement.html
CASE WHEN
... ORDER BY (CASE WHEN date = '0000-00-00' THEN 1 ELSE 0 END) ASC, otherColumns asc, ...