我有一个Toplist表,我想获得用户的排名。如何获取行的索引?

不幸的是,我获取了所有行并在for循环中 checkin 了用户的ID,这对我的应用程序的性能产生了重大影响。

如何避免这种性能影响?

最佳答案

您可以使用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

关于sql - 如何从SQL Server中的表获取行的索引?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19807037/

10-11 01:37