Tug*_*lay 7 sql sql-server row rank
我有一张Toplist桌子,我希望获得用户的排名.我怎样才能获得行的索引?
不幸的是,我得到所有行并检查用户ID的for循环,这对我的应用程序的性能有重大影响.
如何避免这种性能影响?
Kay*_*son 14
你可以使用ROW.NUMBER
这是MySQL的示例语法
SELECT t1.toplistId,
@RankRow := @RankRow+ 1 AS Rank
FROM toplist t1
JOIN (SELECT @RankRow := 0) r;
Run Code Online (Sandbox Code Playgroud)
这是MsSQL的示例语法
SELECT ROW_NUMBER() OVER(ORDER BY YourColumn) AS Rank,TopListId
FROM TopList
Run Code Online (Sandbox Code Playgroud)
BIC*_*ube 11
你也可以这样做:
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS MyIndex
FROM TopList
Run Code Online (Sandbox Code Playgroud)