如何按月DESC订购

时间:2017-05-02 16:52:27

标签: php mysql

我的数据存储在数据库的月份列中。它存储如下:

一月 二月 游行 四月 可以 等...

它们存储为varchar。

如何使用SQL按月订购?即使我的SQL中有ORDER BY month,它目前订购也不正确。

2 个答案:

答案 0 :(得分:0)

select * from your_table
order by case when month = 'January' then 1 
              when month = 'February' then 2
              ...
              when month = 'December' then 12
         end

答案 1 :(得分:0)

Mysql有field function几乎可以做到这一点。

select field(month, 'january', 'february', 'march',
                    'april',   'may',      'june',
                    'july',    'august',   'september',
                    'october', 'november', 'december')

它将返回列表中第一个参数的索引,该参数是其余参数,如果未找到则返回0。因此,对于本月(可能),它将返回5。您也可以通过此返回值进行排序。