2016-07-25 162 views
0
Name 1-3 4-6 7-9 
------------------------ 
Dan  0  3  4 
Jane  1  6  0 
Mike  3  3  3 
Dan  2  2  0 
Jane  3  4  2 
Dan  1  3  0 

以下是需要完成的順序。MySQL - 按列值排序,按其他列的組

Name 1-3 4-6 7-9 
------------------------ 
Dan  0  3  4 
Dan  1  3  0 
Dan  2  2  0 
Mike  3  3  3 
Jane  3  4  2 
Jane  2  2  0 

簡而言之,通過啓動具有最高編號的字段7-9次序,然後按名稱,然後順序通過再次在每個組的名稱,根據字段4-6(在本實施例是Dan & Jane)和1-3

回答

1

嘗試此查詢:

SELECT Name, `1-3`, `4-6`, `7-9` 
FROM yourTable 
ORDER BY `7-9` DESC, Name, `4-6` DESC, `1-3` DESC 
+0

我認爲例子是巧合.. 它應該是爲了通過'7-9'第一 –

0

我認爲有錯字在你想要的結果,並嘗試這個辦法:

select t1.* 
from yourtable t1 
join (
    select Name, max(`7-9`) orderby 
    from yourtable 
    group by Name 
    order by max(`7-9`) 
) t2 on t1.Name = t2.Name 
order by orderby desc, `4-6` desc, `1-3` 

Demo Here