2013-07-08 37 views
1

之前,我有一个查询结果排序mysql的空值(请参见下文)ORDER BY ASC

Current Result: 
Paid Date 
0000-00-00 
2010-05-01 
2011-06-02 
2013-07-08 
0000-00-00 

在这种情况下,我想告诉所有未付第一(与0000-00-00盖章),而且还我需要实现类似这样的结果

Goal Result: 
Paid Date 
0000-00-00 
0000-00-00 
2013-07-08 
2011-06-02 
2010-05-01 

我会写什么SQL Query来获取此输出?

回答

3

您可以使用find_in_set来实现此目的。

喜欢的东西.. ORDER BY find_in_set(date_field, '0000-00-00')

或使用fieldFIELD(date_field, '0000-00-00') DESC

+1

我正要使用UNION查询建议,但这个小宝石似乎更合理。 +1给你先生 –

+0

完美的是我所需要的。这是我与领域功能的相遇感谢! –

+0

很高兴帮助你.. :) –

0

试试这个:

ORDER BY (date_column IS NULL), date_column ASC 
+0

不按要求工作 – mirkobrankovic

+0

对不起,我倒投了它..使用查询的结果是不是我想要的。 0000-00-00在底部列表 –

+0

这是帮助。您只需要将ASC更改为DESC。 –

相关问题