2013-03-25 97 views
1

我試圖通過月份名稱訂購MySQL查詢,如:MySQL的 - 爲了通過MONTHNAME

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 

請告訴我,我在哪裏做錯了

+0

它是什麼目前傳出來的? – judda 2013-03-25 04:15:19

回答

7

你可以指定一個像

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'); 
+0

謝謝,這真的很有幫助。 – user007 2013-03-26 07:20:49

2

嘗試使用內置的月份函數來獲取月份的數量和順序。例如:

order by month(leave_balance.date_added) 
0

只需按leave_balance.date_added字段排序。默認情況下,它將按月排序。

1

只是在結尾處加上:

ORDER BY str_to_date(MONTH,'%M')