MySQL查询排名中的用户数

时间:2016-01-18 06:43:20

标签: php mysql ranking

要获得用户3的排名我正在使用此查询(它工作正常):

$sql = "SELECT 
score,
FIND_IN_SET(score, 
(
SELECT GROUP_CONCAT(score 
ORDER BY score DESC)
FROM results)
) AS rank
FROM results
WHERE user_id = 3
";

表格结构:

user_id - 得分

现在我想给用户3一些积分。我的表格是:

得分数(或用户数) - 等级+1。

因此,如果我有20个用户(或得分)并且用户3的排名是10,那么积分将是:

20 - 10 + 1 = 11 分。

PS :用户(或得分)=某些用户有多个得分。

如何使用此mysql查询获得分数(或用户)?

SQL FIDDLE http://sqlfiddle.com/#!9/ff4505/4

2 个答案:

答案 0 :(得分:2)

检查一下......我希望它可以帮助你...

SELECT user_id,@all_user := (SELECT COUNT(*) FROM `results`) as all_count,((@all_user-score)+1) as rank FROM `results` WHERE user_id = 3 

答案 1 :(得分:1)

改进答案

$sql = "SELECT @all_user := (SELECT COUNT(*) FROM `results`) 
        as all_count,((@all_user-score)+1) as rank FROM `results` WHERE user_id = 3";