MySQL GROUP BY вопросный вопрос - PullRequest
1 голос
/ 07 мая 2011

У меня есть таблица, которая содержит название цвета (например, чирок) и связанный основной цвет (синий). Иногда запись о цвете может совпадать с соответствующим основным цветом (красный, красный).

Как я могу сделать GROUP BY PRIMARY_COLOR, где COLOR для каждой группы расположены в алфавитном порядке ... кроме случаев, когда COLOR и PRIMARY_COLOR совпадают - эта запись должна быть вверху группировки.

Пример:

COLOR    PRIMARY_COLOR
------------------------
teal     blue
magma    red
sky      blue
red      red
magenta  red

должно получиться ...

COLOR    PRIMARY_COLOR
------------------------
sky      blue
teal     blue
red      red
magenta  red
magma    red

Ответы [ 3 ]

4 голосов
/ 07 мая 2011

Order by (ASSOCIATEDCOLOR = COLOR), ASSOCIATEDCOLOR

1 голос
/ 07 мая 2011
ORDER BY CASE WHEN COLOR=PRIMARY_COLOR THEN 0 ELSE 1 END, PRIMARY_COLOR
0 голосов
/ 07 мая 2011
SELECT color, primary_color
FROM colors
ORDER BY
    primary_color,
    color LIKE primary_color DESC,
    color
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...