MySQL按id选择不同的顺序

use*_*810 3 mysql select distinct sql-order-by

我有一个如下表:

id category
1  A
2  A
3  B
4  B
5  C
6  C

如果我想选择按id递减排序的前2个不同类别,那么mysql中的正确查询是什么?我尝试select distinct category from table order by id desc limit 2但是给了我以下结果:

category
C
C

代替

category
C
B

Gor*_*off 5

在前2位,你似乎是指列表末尾的那些.试试这个:

select category
from t
group by category
order by max(id) desc
limit 2
Run Code Online (Sandbox Code Playgroud)

如果你的意思是行数最多的那些.

试试这个:

select category
from t
group by category
order by count(*) desc
limit 2
Run Code Online (Sandbox Code Playgroud)

您还可以count(*)在选择列表中包含以查看计数.