id field
1 100
2 80
3 200
4 230
如果按字段DESC排序,是否有可能找出id 2的等级?
在这种情况下,排名将是:
1. #4
2. #3
3. #1
4. #2 (our winner)
答案 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