我有一个包含 2 列“id”和“name”的表。 id 是常规的自动增量索引,name 只是 varchar。
id name
1 john
2 mary
3 pop
4 mary
5 john
6 michael
7 john
8 will
我想这样排序搜索结果
8 will
7 john
5 john
1 john
6 michael
4 mary
2 mary
3 pop
Id 是 DESC,但所有重复的名称都组合在一起。没关系,如果ASC更容易实现。如有必要,我可以在 PHP 中反转结果。
常规 ORDER BY name,id DESC 首先对所有名称进行排序,然后对 ID 进行排序。那不是我想要的。我对名字的字母顺序不感兴趣。
我想要按 DESC 顺序排列的 id,如果有的话按重复名称分组。
附注很抱歉这是一个重复的问题。
如果我没理解错的话,您需要一个临时表。
SELECT TableName.id, TableName.Name FROM TableName
INNER JOIN
(
SELECT Name, max(id) as maxid FROM TableName GROUP BY Name
) as tmp on tmp.Name = TableName.Name
ORDER BY maxid DESC, id DESC
Tôi là một lập trình viên xuất sắc, rất giỏi!