MySQL从选择

时间:2018-01-23 16:04:34

标签: mysql database

我真的不知道怎么问这个问题 但我想从选择命令中选择一行
所以...我做了一个命令,将每个xp值从低到高排序并给它一个等级

SELECT id, xp, @curRank := @curRank + 1 AS rank FROM xp p, (SELECT @curRank := 0) r ORDER BY xp DESC;

如果我有id值,我可以检查它所在的行吗?然后找到排名值?
因为我的意思是值在选择中是否有一种方法可以从选择中选择 谢谢你的帮助!

1 个答案:

答案 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