我真的不知道怎么问这个问题
但我想从选择命令中选择一行
所以...我做了一个命令,将每个xp值从低到高排序并给它一个等级
SELECT id, xp, @curRank := @curRank + 1 AS rank FROM xp p, (SELECT @curRank := 0) r ORDER BY xp DESC;
如果我有id值,我可以检查它所在的行吗?然后找到排名值?
因为我的意思是值在选择中是否有一种方法可以从选择中选择
谢谢你的帮助!
答案 0 :(得分:0)
您需要构建子查询,因此数据库可以先计算排名,然后您可以选择它
select rank
from
(
SELECT id, xp, @curRank := @curRank + 1 AS rank
FROM xp
CROSS JOIN (SELECT @curRank := 0) r
ORDER BY xp DESC
) tmp
where id = 123