Как отсортировать записи в таблице по Enum полю

Standard

Есть пара способов, как отсортировать enum:

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

Это все проверено на mysql, я видел в инете люди ругались на 3 решение используя db2 базу данных.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>