当2个字段匹配时,MySQL查询由DESC排序

时间:2014-10-23 21:16:31

标签: php mysql sql sorting

逻辑:

1)当id& id1匹配,我想对DESC进行排序(例如,id = 9是最高分= 400,id = 1是第二高分= 150)

2)在匹配行下面,我希望所有id1与由id ASC排序的匹配相同(例如,id = 10& id1 = 9将直接位于id = 9& id1 = 9行之下)

**注意:id是唯一且自动递增的

原始数据:

id  id1 score
1   1   150
2   1   70
3   3   80
4   3   250
5   3   800
6   3   560
7   7   100
8   7   195
9   9   400
10  9   35

期望的输出:

id  id1 score
9   9   400
10  9   35
1   1   150
2   1   70
7   7   100
8   7   195
3   3   80
4   3   250
5   3   800
6   3   560

1 个答案:

答案 0 :(得分:1)

这是您的查询:

select
    t1.id,
    t1.id1,
    t1.score
from
    myTable t1
    left join myTable t2 on t1.id1 = t2.id and t2.id = t2.id1
order by
    t2.score desc,
    t1.id=t1.id1 desc,
    t1.id asc

<强> sql-fiddle