2012-08-04 86 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不是我的強項,但我相信上面應該可以。

相關問題