如何根据一个查询中其他人的统计数据来查找某个用户的三个统计数据的排名?
喜欢
用户 -> 艾伦
等级 -> 25(等级 3)
胜利 -> 347(排名 1)
损失 -> 2(排名 145)
这就是我所拥有的
function get_rank($what,$user) {
$v = mysql_query("
SELECT username, @curRank := @curRank + 1 AS rank FROM `users`,
(SELECT @curRank := 0) r
WHERE id = '".$user."' ORDER BY `".$what."`");
$a = mysql_fetch_array($v);
return $v['rank'];
}
它永远不会起作用。
表结构
Id Username level wins losses
1 Alan 25 347 2
2 Joe 34 100 4
3 Sam 12 600 12
谢谢。
最佳答案
SELECT * FROM
(SELECT m.name,rank_level,rank_win ,rank_loss
FROM
(SELECT @rank := @rank + 1 AS rank_level,name,id FROM users ORDER BY level DESC) m
inner join (SELECT @rankw := @rankw + 1 AS rank_win,name,id
FROM users ORDER BY win DESC) w on m.id=w.id
inner join (SELECT @rankl := @rankl + 1 AS rank_loss,name,id
FROM users ORDER BY loss DESC) l on m.id=l.id
, (SELECT @rank := 0) m2,(SELECT @rankw := 0) w2,(SELECT @rankl := 0) l2
) k
WHERE k.name= 'Alan';
关于php - Mysql 某一用户多列的Rank,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11875509/