Php 获取行号

Php 获取行号,php,mysql,sql,Php,Mysql,Sql,我需要得到我的用户的排名行号相对于其他用户的分数。在我3年前的古老代码中,没有错误,但现在我尝试了相同的代码,MySQL给出了太多错误 我的旧代码 SELECT * FROM (SELECT @rank := @rank + 1 AS rank, ID,nick,balance FROM users , (SELECT @rank := 0) r ORDER BY balance DESC ) k WHERE k.nick = '$nickname'"); 我需要得到这样的排名 SELECT

我需要得到我的用户的排名行号相对于其他用户的分数。在我3年前的古老代码中,没有错误,但现在我尝试了相同的代码,MySQL给出了太多错误

我的旧代码

SELECT * FROM
(SELECT @rank := @rank + 1 AS rank, ID,nick,balance
FROM users , (SELECT @rank := 0) r
ORDER BY balance DESC
) k
WHERE k.nick = '$nickname'");
我需要得到这样的排名

SELECT *rank* FROM users WHERE users who have more than 10 balance AND users have less than 100 balance
你能告诉我我的代码出了什么问题,以及我如何修复它吗?多谢各位

例如:

User 0 Balance 7
User 1 Balance 15
User 2 Balance 55
User 3 Balance 104
用户2的预期排名为2。超过10个,少于100个

SELECT FIND_IN_SET( balance, (    
SELECT GROUP_CONCAT( balance
ORDER BY balance DESC ) 
FROM uye WHERE balance>50 AND balance<1000 )
) AS rank
FROM UYE
WHERE ID =  '49'
这是我设法运行的答案。

您不能使用:

选择ID、nick、balance、ROW_NUMBER OVERORDER BY@rank作为来自用户的排名


使用Where子句。Where balance>10且balance<100So VR46已获得它-在subquery@Strawberry遗憾的是,它不起作用。您的错误消息引用了另一个查询。也许休息一下?@草莓是的,休息很快但奇怪的是:/