MySQL按两列排序

标签 mysql sql

我有一张下表。

id    name     data
1     DAN      xxxxxxxxx
2     ANTONY   xxxxxxxxx
3     DAN      xxxxxxxxx
4     DAN      xxxxxxxxx
5     JOSEPH   xxxxxxxxx
6     ANTONY   xxxxxxxxx
7     JOSEPH   xxxxxxxxx

我想首先使用 ID 对表进行排序,然后按名称进行分组。 例如。

7    JOSEPH  xxxxxxxxx
5    JOSEPH  xxxxxxxxx
6    ANTONY  xxxxxxxxx
2    ANTONY  xxxxxxxxx
4    DAN     xxxxxxxxx
3    DAN     xxxxxxxxx
1    DAN     xxxxxxxxx

我尝试了 ORDER BY 的各种组合,也尝试了 ORDER BY FIELD 但无法得到想要的结果

最佳答案

尝试使用

select *, (select max(id) from tab t2 where t2.name = t1.name) m
from tab t1
order by m desc, id desc;

dbfiddle demo

关于MySQL按两列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49274132/

相关文章:

mysql - 在 MySQL/MariaDB 中将 CHAR 主键转换为 INT

php - 如何记录手动付款的发票的概念或方法

php - 如何使用php获取wordpress中附件图像的id和位置

mysql - Mysql根据月份和日期搜索数据

SQL Server 找不到存储过程 'show'

python - DJANGO 在保存时添加 NULL - IntegrityError at/****/(1048, "***' 不能为 null")

mysql查询速度

mysql LEFT JOIN 主表和两个附加表,每个表都有最大值

php - 使用 mysql 中的变量动态选择选项

MYSQL查询日期之间