1

我可以对这个查询使用一些帮助。

这是我的桌子:

id      name    point
1       yogi      5
2       sasi     10
3       white     5
4       black     8

我的查询是:

SELECT * FROM points ORDER BY point DESC

结果是:

id      name    point
 2      sasi      10
 4      black      8
 1      yogi       5
 3      white      5

但我想要如下结果。请指导我。

id      name    point  rank
 2      sasi      10     1
 4      black      8     2
 1      yogi       5     3
 3      white      5     4

这可能吗?

提前致谢。

4

2 回答 2

1

试试这个

SET @rank = 0;
SELECT *, @rank:=@rank+1 AS rank 
    FROM points ORDER BY point DESC

作为单行查询,如下所示

SELECT *, @rank:=@rank+1 AS rank 
   FROM points, (SELECT @rank:=0) temp
   ORDER BY point DESC
于 2012-07-12T10:47:31.467 回答
0
SELECT 
    *,
    @rank:=@rank+1 'rank' FROM points, (select @rank:=0) r
ORDER BY 
    point DESC

来源:在 MySQL 中显示行号(rownum)

于 2012-07-12T10:47:30.870 回答