如何使用mysql查询按日历顺序对月份进行排序

时间:2016-06-17 12:35:24

标签: mysql

我有这样的查询

SELECT Value,month,Year FROM `rainfall_past` WHERE Year = '2006' and District= 'Colombo'    

这将返回以下结果

Value   month       Year    
103.4   April       2006    
270.6   August      2006    
51.9    December    2006    
156.9   February    2006    
126.9   January     2006    
96.8    July        2006    
183.1   June        2006    
266.6   March       2006    
193.1   May         2006    
524.7   November    2006    
619.9   October     2006    
129     September   2006    

问题是,你可以看到月份不在日历顺序中。如何在日历月订单中查询此信息。我不想在表中添加额外的列或在源代码中编写脚本来对其进行排序。有什么办法可以在我的查询中执行此操作。谢谢你们的支持

1 个答案:

答案 0 :(得分:2)

似乎month是一个文本字段。如果是这种情况,那么您可以在ORDER BY子句中使用FIELD函数:

SELECT Value, month, Year 
FROM `rainfall_past` 
WHERE Year = '2006' and District= 'Colombo' 
ORDER BY Year,
         FIELD(month, 'January', 'February', ..., 'December')

另一方面,如果从日期时间字段中推断出month,则可以使用MONTH(date)