MySQL排序添加渐进式ID
Posted
技术标签:
【中文标题】MySQL排序添加渐进式ID【英文标题】:MySQL sort adding progressive id 【发布时间】:2012-12-07 13:59:10 【问题描述】:我有问题
我想用 mysql 对我的表格内容进行排序,并将结果用作游戏中的排名表:
分数: 用户 |积分
我有这个问题:SELECT * FROM scores ORDER BY score DESC LIMIT 0,10
如何在我的查询结果中添加一列以显示带有渐进编号的每条记录?
即
我的查询显示的内容:
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
【问题讨论】:
Row Rank in a MySQL View 的可能重复项 特别是,请参阅 OMGPonies 在链接问题中的回答。 还有***.com/questions/3333665/mysql-rank-function 【参考方案1】:试试
set @row_num = 0;
SELECT @row_num := @row_num + 1 as row_index, user, points
FROM scores ORDER BY score DESC LIMIT 0,10
【讨论】:
【参考方案2】:试试
SELECT TOP 10 CONVERT(INT, ROW_NUMBER() OVER (ORDER BY Points)) AS RowRank, Users, Points FROM Scores
【讨论】:
【参考方案3】:因为我还不会编写 cmets,所以我想指出,在执行 select 语句时最好不要使用 SELECT *。如果您只是获取名称和分数,请仅选择这些。
What is the reason not to use select *?
【讨论】:
以上是关于MySQL排序添加渐进式ID的主要内容,如果未能解决你的问题,请参考以下文章