【发布时间】:2014-12-10 06:24:16
【问题描述】:
我有一个名为 user_rankings 的表,其中存储了每个用户的投票 (voted)。我想显示当前用户的排名(本周),这取决于用户获得了多少票。
举例说明:
- RANK-NR、用户名、已投票
- 1, name1, 18 次
- 2, name1, 16 次
- (我的排名在这里),我的名字,13次
在这个例子中,我的排名应该是 3。如果我有 17 票,我会是第 2 名。如果我上面有 5 个用户,我会是第 8 名。我想你明白了。
现在我可以在 PHP 中使用递增的$i 轻松显示排名数字。但是我只想显示一个限制为十个用户的列表(前十名列表),然后直接显示我当前的排名,如果我还没有进入前十名的话。所以我只是想知道如何使用 MySQL 获得我的确切排名。
我假设这个列表中有数百个用户,他们的票数不同。
这是我此刻的声明:
SELECT
`voted`
FROM `users_ranking`
WHERE
`uid`='".$_SESSION['uid']."'
AND
WEEKOFYEAR(`date`)=WEEKOFYEAR(NOW())
LIMIT 1
【问题讨论】: