我有以下mysql查询:
SELECT
@rownum:=@rownum+1 rank,
userID,
xpTotal
from users xpTotal, (SELECT @rownum:=0) r
WHERE username != '' && bot = 'false'
ORDER BY xpTotal DESC
导致这样的事情:
rank | userID | xpTotal
--------------------------------
1 | 2934729447 | 52873
2 | 8523954935 | 33465
3 | 4576456556 | 13466
4 | 2341234555 | 04244
5 | 3453565334 | 02297
如何修改我的查询以获取ID 2341234555
的排名?含义在这种情况下,查询只会输出第四行。
您需要将电流包装在子查询中,否则,如果在当前WHERE
子句中添加条件,等级将始终为1。
SELECT *
FROM
(
SELECT
@rownum:=@rownum+1 rank,
userID,
xpTotal
FROM users xpTotal, (SELECT @rownum:=0) r
WHERE username != '' && bot = 'false'
) a
WHERE a.UserID = '2341234555';