最近两天,我一直在询问有关Mysql中排名查询的问题。到目前为止,我有工作查询
- 查询表中的所有行并按其排名排序。
- 仅查询一行及其排名
这是我昨晚的问题的链接
您可能会注意到,btilly 的查询速度非常快。
这是一个查询,仅获取我根据 btilly 的查询所做的排名的一行。
set @points = -1;
set @num = 0;
select * from (
SELECT id
, points
, @num := if(@points = points, @num, @num + 1) as point_rank
, @points := points as dummy
FROM points
ORDER BY points desc, id asc
) as test where test.id = 3
上面的查询正在使用子查询..所以..我担心性能。
我可以使用其他更快的查询吗?
表点
id points
1 50
2 50
3 40
4 30
5 30
6 20