我有一个像这样的MySQL表...
ID | NAME | RANK | PTS
---+-------+------+----
12 | John | 1 | 28
18 | Andy | 2 | 31
23 | Brian | 3 | 16
41 | Mike | 4 | 33
15 | Jack | 5 | 35
68 | Anne | 6 | 24
我目前排序...
SELECT * FROM `ranks` ORDER BY PTS desc
我正在寻找可以给它一个
ID
的代码,它将返回它在PTS列中的排名。对于ID 41,它应返回2作为该列的第二佳分数。我不确定要从Google那里得到什么答案。是否有一些SQL代码可以简单地做到这一点?也许PHP?
RANK
列是总体排名,PTS
是到目前为止的当前每周得分。最终可能会有多达250万个条目。请让我知道,如果你有任何问题。 最佳答案
// get the number of ppl w/ points higher than the given user's
SELECT count(*) + 1 FROM ranks WHERE PTS > (
SELECT PTS FROM ranks WHERE ID = 41);
...尽管如果您希望扩展规模,则可能需要重新考虑如何构造数据。
关于php - 从SQL总计列获取排名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16349457/