0

我有个问题

我想用 MySQL 对我的表格内容进行排序,并将结果用作游戏中的排名表:

分数:用户 | 积分

我有这个查询:SELECT * FROM scores ORDER BY score DESC LIMIT 0,10

如何在查询结果中添加一列以显示带有渐进编号的每条记录?

IE

我的查询显示的内容:

mike        8000
al          7569
frank       7296
alex        7000
dana        6237
mark        6201
gankz       5766
mickeymouse 5420
donaldduck  5126
user        2569

我希望它显示什么:

**1** mike 8000
**2** al 7569
**3** frank 7296
**4** alex 7000
**5** dana 6237
**6** mark 6201
**7** gankz 5766
**8** mickeymouse 5420
**9** donaldduck 5126
**10** user 2569
4

3 回答 3

3

尝试

set @row_num = 0; 
SELECT @row_num := @row_num + 1 as row_index, user, points 
FROM scores ORDER BY score DESC LIMIT 0,10
于 2012-12-07T14:02:21.377 回答
1

尝试

SELECT TOP 10 CONVERT(INT, ROW_NUMBER() OVER (ORDER BY Points)) AS RowRank, Users, Points FROM Scores
于 2012-12-07T14:10:43.483 回答
0

因为我还不能写评论,所以我想指出,在执行 select 语句时,最好不要使用 SELECT *。如果您只是获取名称和分数,请仅选择这些。

不使用select *的原因是什么?

于 2012-12-07T14:08:52.810 回答