MySQL Enum field not ordering correctly

Thats because: It will order in the order the enum values are defined at table level – not the actual varchar/int/etc value.

Fix:

SELECT CAST(a.enumfield AS CHAR(255)) AS enumfield, a.*
FROM `mytable` a
ORDER BY CAST(a.enumfield AS CHAR(255)) ASC

Tip: change it to CAST X as INT – if you’ve got integers, so on and so forth.

Tip2: use table aliases

Leave a Reply

Your email address will not be published. Required fields are marked *