2017-07-16 13 views
1

我在我的數據庫中有一列存儲許多產品的發佈月份,這個列存儲爲單詞'January','March'等。當月以字符串形式存儲時,訂購MYSQLI結果爲'MONTH'

我需要按月降序輸出產品,但問題是因爲月份是以字符串形式存儲的,所以我當前的查詢按字母順序排列產品。

這裏是我當前的查詢

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

有可能是一個辦法,我仍然可以在一個月降序排序順序這些,例如十二月,十一月....

三江源任何幫助

+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