2011-05-06 159 views
1

我有一個包含顏色名稱(如藍綠色)和關聯的主要顏色(藍色)的表格。有時,顏色條目可以與其關聯的主要顏色(紅色,紅色)相同。MySQL GROUP BY查詢問題

如何做一個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 
+1

你確定你需要一組由?我想你只是在做一個訂單 – 2011-05-06 21:39:32

回答

4

Order by (ASSOCIATEDCOLOR = COLOR), ASSOCIATEDCOLOR

+0

我覺得我有點複雜。工作很好 – 2011-05-06 21:40:16

1
ORDER BY CASE WHEN COLOR=PRIMARY_COLOR THEN 0 ELSE 1 END, PRIMARY_COLOR 
0
SELECT color, primary_color 
FROM colors 
ORDER BY 
    primary_color, 
    color LIKE primary_color DESC, 
    color