2017-07-16 2 views
1

私はデータベースに、多くの製品のリリース月を格納する列を持っています。これは単語 'January'、 'March'など...月が文字列として格納されているときに 'MONTH'によってMYSQLI結果を注文する

月を降順に出力する必要がありますが、月が文字列として格納されているため、現在のクエリで製品を月ごとにアルファベット順に並べているため問題があります。ここで

は私の現在のクエリ

$all="SELECT * FROM models ORDER BY year DESC, month DESC LIMIT 3 "; 

はおそらく12月、11月、私はまだ、たとえば、月の降順でこれらを並べ替えることができます方法はありです....

ありがとう任意の助け

+0

なぜ月を整数として保存しないのですか?それは、MySQLは月の名前を知っているので、あなたは知識を活用するように頼むことができます – Strawberry

答えて

1

一つの方法は、使用することですfield()

order by year desc, 
     field(month, 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December') desc 

または、値を日付に変換してください:

order by str_to_date(concat(year, '-', month), '%Y-%M')) desc 
+0

最初のメソッドフィールド()は完璧です、ありがとう:) – cousbrad

関連する問題