2012-08-04 40 views
1

我正在使用MySQL,我检查了一些SQL教程,我看到这是一个声明,称为ORDER BY,通常是ORDER BY列,AESCDESC。但是这是可能的ORDER由不同的排序算法的数据?我可以按功能定制自己的sql顺序吗?

例如,我有我的DB跟随值:

`id`,`name`,`notice_day` 

我想首先sort今天的一天,比天今天附近,然后,明天.... BABABA ,完成排序从今天的日子,和未来,昨天,到目前为止....下面是例子,assame今天1/1/2012

`1`, `peter`, `1/1/2012` 
`2`, `tom`, `31/12/2011` 
`3`, `mary`, `1/2/2012` 
`4`, `steve`, `1/1/2011` 
`5`, `bill`, `1/4/2012` 

的排列顺序,我想以后就在这里:

`1`, `peter`, `1/1/2012` 

`3`, `mary`, `1/2/2012` 

`5`, `bill`, `1/4/2012` 

`2`, `tom`, `31/12/2011` 

`4`, `steve`, `1/1/2011` 
+0

为了能接受任意的功能,例如:可以这样做'somefield = 1'的顺序会使得在某个字段中所有带有'1'的记录最后出现。 – 2012-08-04 00:43:37

+0

查看http://stackoverflow.com/questions/6186962/sql-query-to-show-nearest-date – Kurt 2012-08-04 07:03:20

回答

1

如果notice_day是今天或将来升序,如果notice_day是过去降序?通过

select * from my_table order by if(notice_day >= date(now()), notice_day, 9999) asc, notice_day desc

0
SELECT * FROM ##### ORDER BY CONVERT(DateTime, EventDate,101) DESC 

mySQL不是我的强项,但我相信上面应该可以。

相关问题