【发布时间】:2012-09-02 17:10:13
【问题描述】:
假设我有一个包含以下列的表格:
p_id
用户名
积分
假设这些列有超过 5000 条记录。所以我们实际上有积分的用户。每个用户的积分记录都有一个唯一的行。想象一下,每个用户都可以通过点击某个地方在网站上获得积分。当他们点击时,我会使用他们获得的积分更新数据库。
所以我们有一个表,其中包含超过 5000 条有积分的人的记录,对吧?现在我想按点(降序)对它们进行排序,所以如果我运行 MySQL 查询,点数最高的用户将位于页面顶部。
我可以通过简单地运行这样的查询来做到这一点:
SELECT `p_id` FROM `point_table` ORDER BY `points` DESC
此查询将按点按降序为我提供所有记录。
好的,我的问题来了,现在(当它订购时)我想向每个用户显示他们实际上在哪个地方。所以我想给每个用户这样的东西:“你是 5374 个用户中的 623 个”。问题是我不能指定“623”这个数字。
我想运行一个查询,它按点排序表格它应该“搜索”或计算行号,他们的记录在哪里,然后返回对我有价值。
谁能帮助我如何为此构建查询?这将是一个很大的帮助。谢谢。
【问题讨论】:
-
下面的答案不起作用,因为
order by将在变量被选中后被评估。请参阅 stackoverflow.com/questions/2520357/… 的警告