【发布时间】:2013-11-17 09:24:57
【问题描述】:
我有一个Toplist 表,我想获得一个用户的排名。如何获取行的索引?
不幸的是,我正在获取所有行并在 for 循环中检查用户 ID,这对我的应用程序的性能有重大影响。
如何避免这种性能影响?
【问题讨论】:
-
由于 Tim 100% 正确,我认为在“toplist”中,行号成为排名?
标签: sql sql-server row rank
我有一个Toplist 表,我想获得一个用户的排名。如何获取行的索引?
不幸的是,我正在获取所有行并在 for 循环中检查用户 ID,这对我的应用程序的性能有重大影响。
如何避免这种性能影响?
【问题讨论】:
标签: sql sql-server row rank
你也可以这样做:
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS MyIndex
FROM TopList
【讨论】:
在您的代码分析函数中使用
【讨论】:
您可以使用 ROW.NUMBER
这是 MySQL 的示例语法
SELECT t1.toplistId,
@RankRow := @RankRow+ 1 AS Rank
FROM toplist t1
JOIN (SELECT @RankRow := 0) r;
这是 MsSQL 的示例语法
SELECT ROW_NUMBER() OVER(ORDER BY YourColumn) AS Rank,TopListId
FROM TopList
【讨论】: