MySQL ENUM ORDER BY

Редко использую ENUM поля в MySQL, но понадобилось мне сделать сортировку по этому полю. А как же сортируются такие поля по ORDER BY? Все просто, поля сортируются в порядке их добавления в БД.
Т.е. если есть список значений field = A, Z, D, E
То ORDER BY field даст список A, Z, D, E
А ORDER BY field DESC даст список E, D, Z, A
Сортировки по алфавиту не будет! Потому что сортировка идет по индексу ENUM.
Отсортировать по алфавиту, можно так: ORDER BY CAST(field AS CHAR)
Как указать свой порядок значений, что-то вроде:
ORDER BY field WITH_SORT_ORDER "New York", "Copenhagen", "London"
я, пока что, не нашел
Author: | Rating: / | Tags:

4 comments.
Write a comment