mysqlsql-order-by

MySql - order by monthname


I am trying to order mysql query by month name like:

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

Here is my query, but its not ordering:

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

Kindly tell me where I am doing wrong


Solution

  • you can specify like

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