MySql - 按月份排序

11

我想按照月份名称对MySQL查询进行排序,例如:

January --  5
February -- 2
March    -- 5
and so on

这是我的查询,但它没有排序:

SELECT leave_balance.balance, MonthName(leave_balance.date_added) AS month 
FROM leave_balance WHERE leave_balance.staff_id_staff = $iid 
GROUP BY month,  leave_balance.leave_type_id_leave_type 
HAVING leave_balance.leave_type_id_leave_type = $leaveBalTypID 
ORDER BY month

请告诉我我做错了什么。


它当前输出的是什么? - judda
4个回答

21

你可以像这样指定

ORDER BY FIELD(MONTH,'January','February','March',...)


SELECT leave_balance.balance, MonthName(leave_balance.date_added) AS month 
FROM leave_balance WHERE leave_balance.staff_id_staff = $iid 
GROUP BY month,  leave_balance.leave_type_id_leave_type 
HAVING leave_balance.leave_type_id_leave_type = $leaveBalTypID 
ORDER BY FIELD(MONTH,'January','February','March',...,'December');

9
只需在查询语句的末尾添加此内容:
ORDER BY str_to_date(MONTH,'%M')

如果将来列名更改,您将不需要担心它。

7

尝试使用内置的月份函数来获取月份的编号,并按照该编号排序。例如:

order by month(leave_balance.date_added)

2

只需按照leave_balance.date_added字段排序。默认情况下,它将按月份排序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接