mysql查询 - 按字段排列行和计算id x的位置

时间:2011-11-02 20:40:15

标签: mysql

id field
1  100
2  80
3  200
4  230

如果按字段DESC排序,是否有可能找出id 2的等级?

在这种情况下,排名将是:

1. #4
2. #3
3. #1
4. #2 (our winner)

2 个答案:

答案 0 :(得分:4)

如果我理解你的问题,这就是你需要的。请注意,由于MySQL没有行编号功能,因此您需要在其位置使用变量

SET @rank=0;    
SELECT * FROM (
    SELECT @rank:=@rank+1 AS rank, id, field FROM table ORDER BY field DESC
) vw
WHERE vw.id = 2;

答案 1 :(得分:0)

在使用ORDER BY DESC时,会自动创建

排名。 id将保持选择正确的排名顺序。

SELECT id,field FROM table_name ORDER BY id DESC