我有一个用户表和一个“积分”列。我想确定按“积分”排序的所有用户的行数/位置。
我可以只获取所有用户数据的结果,然后执行 while 循环,并在 id 等于必要用户时停止。但我相信有一种更有效的方法可以做到这一点,因为我的表将包含约 100 000 行。
最佳答案
试试这个:
SET @rownum = 0;
Select sub.*, sub.rank as Rank
FROM
(
Select *, (@rownum:=@rownum+1) as rank
FROM users
ORDER BY points
) sub
WHERE rank = 15
关于mysql - 如何确定一行在有序 SQL 表中的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13254109/