1

私はMySQLを使用しており、SQLチュートリアルを確認しました。これは、またはを使用して、ORDER BY通常ORDER BYは列である、を呼び出すステートメントであることがわかります。しかし、これは異なるソートアルゴリズムによってデータに可能ですか?AESCDESCORDER

たとえば、DBには次の値があります。

`id`,`name`,`notice_day`

今日がsort最初で、今日に近い日、そして明日よりも、今日からの日、そして未来、昨日、そしてこれまでの日を並べ替えた後のバババになりたいです。例、今日のアッサムは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`
4

2 に答える 2

1

したがって、notice_dayが今日または将来の場合は昇順、notice_dayが過去の場合は降順ですか?次のようなことができます:

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

于 2012-08-04T07:47:44.840 に答える
0
SELECT * FROM ##### ORDER BY CONVERT(DateTime, EventDate,101)  DESC

mySQL は私の強みではありませんが、上記の方法でうまくいくはずです。

于 2012-08-04T00:47:19.490 に答える