2016-04-18 9 views
0

に基づいてソートSQL列は、私は、次のSELECT文を持っている:文字列型の数ヶ月

SELECT `facility_name`, `day`, `month`, `year`, `start_time`, `end_time` 
FROM reservation_db 
WHERE user_id = '$userID' 
ORDER BY `facility_name` ASC, `year` ASC, `day` ASC, `start_time` ASC, `end_time` ASC" 

それは正常に動作しますが、私のテーブルに私も文字列としてヶ月を含む列monthを持っている(つまり、 「イアン」、「2月」、「3月」など)。列に格納されているデータの種類を変更することは現在オプションではなくなりました。ORDER BYを使用してそれらを並べ替えるにはどうすればよいですか?

+0

をあなたが試すことができます。http://stackoverflow.com/questions/6810793/mysql-sort-by-some-リスト –

答えて

2

あなたは毎月の数を返す場合は、ご注文によってあなたにcase式を追加します。

order by case `month` when 'Jan' then 1 
         when 'Feb' then 2 
         when 'Mar' then 3 
         ... 
         when 'Dec' then 12 
     end 
+0

これはうまくいった!どうもありがとうございました! – arch1ve

+0

よろしくお願いいたします。 – jarlh