質問: あるカラムに「2000-01-01」や「2013-06-18」 の様な日付の入っているカラムがあるのですが、 これを年では降順、月では昇順で表示させたいのですが、 調べてみても求める答えが出てこず困り果てております。(自分の調べ方が悪いだけかもですが・・・) どのようにすれば良いのかご存知の方お教えください。 また、やり方が掲載されているwebページをご存知の方、URLを教えていただけるとうれしいです。 よろしくおねがいいたします・・・。 表示例 2013-01-01 2013-01-08 ・ ・ ・ 2000-12-03 2000-12-30 こんな感じでございます。
回答: `ORDER BY`として、日付列から計算して指定するという方法があります。 ``` SELECT 内容 FROM テーブル名 ORDER BY YEAR(date_col) DESC, DAYOFYEAR(date_col) ASC; ``` ただし、このような方法を取るとインデックスが効かないので遅くなります。よく使うのであれば、年だけ、月日だけの関数インデックスを入れたほうがいいでしょう。