排名 MySQL 查询中的用户数
Number of users in a ranking MySQL query
要获得用户 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
";
Table结构:
user_id - 分数
现在我想给用户3一些积分。我的公式是:
分数(或用户)数量 - 排名 + 1。
所以如果我有20个用户(或分数),用户3的排名是10,那么积分将是:
20 - 10 + 1 = 11 点。
PS: users (or score) = 一些用户有一个以上的分数。
如何使用此 mysql 查询获得分数(或用户)的数量?
SQL FIDDLE
http://sqlfiddle.com/#!9/ff4505/4
检查这个...希望对您有所帮助...
SELECT user_id,@all_user := (SELECT COUNT(*) FROM `results`) as all_count,((@all_user-score)+1) as rank FROM `results` WHERE user_id = 3
改进答案
$sql = "SELECT @all_user := (SELECT COUNT(*) FROM `results`)
as all_count,((@all_user-score)+1) as rank FROM `results` WHERE user_id = 3";
要获得用户 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
";
Table结构:
user_id - 分数
现在我想给用户3一些积分。我的公式是:
分数(或用户)数量 - 排名 + 1。
所以如果我有20个用户(或分数),用户3的排名是10,那么积分将是:
20 - 10 + 1 = 11 点。
PS: users (or score) = 一些用户有一个以上的分数。
如何使用此 mysql 查询获得分数(或用户)的数量?
SQL FIDDLE http://sqlfiddle.com/#!9/ff4505/4
检查这个...希望对您有所帮助...
SELECT user_id,@all_user := (SELECT COUNT(*) FROM `results`) as all_count,((@all_user-score)+1) as rank FROM `results` WHERE user_id = 3
改进答案
$sql = "SELECT @all_user := (SELECT COUNT(*) FROM `results`)
as all_count,((@all_user-score)+1) as rank FROM `results` WHERE user_id = 3";