php - 当2个字段匹配时MySQL查询按DESC排序

标签 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

最佳答案

这是您的查询:

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

关于php - 当2个字段匹配时MySQL查询按DESC排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26537628/

相关文章:

php - 根据用户类型仅显示来自 mysql 的一行

mysql - 在 bash 流中压缩文件时保留文件名

java - Java 中两个 Timestamp 对象之间的差异

php - 动态下拉框?

php - 将某个单元格从数据库发送到另一个 PHP 页面

mySQL 错误 1040 : Too Many Connection

sql - SQL Server 中事务的正确使用

sql - Oracle SQL开发人员: How to transpose rows to columns using PIVOT function

php - Symfony2 有条件验证

php - 合并字段 laravel 集合