Есть пара способов, как отсортировать enum:
- Если вы хотите отсортировать в алфавитном порядке, используйте CONCAT:
SELECT * FROM SomeTable ORDER BY CONCAT(ENUM_FIELD);
- Если надо использовать определенный порядок:
ORDER BY FIELD(ENUM_FIELD, 'FIRST_VAL', 'SECOND_VAL', 'THIRD_VAL');
- Еще один случай, к примеру вам надо отсортировать следующим образом: есть столбец column, первыми идут значения ‘red’, затем любые кроме ‘yellow’ в конце ‘yellow’, внутри каждой группы сортировать по столбцу name :
ORDER BY CASE color
WHEN 'YELLOW' THEN 3
WHEN 'RED' THEN 1
ELSE 2
END, name
Это все проверено на mysql, я видел в инете люди ругались на 3 решение используя db2 базу данных.