按名称

时间:2016-12-11 18:43:29

标签: php sql database

$query = "SELECT  uo.*, 
                 (
                   SELECT  COUNT(*)
                   FROM    Score ui
                   WHERE   (ui.score) >= (uo.score)
                 ) AS rank
          FROM    Score uo
          WHERE   name = '$politestring';";

我的数据库是idkw0t,数据库名称是idkw0t。我有一张桌子 - UsersUsers表有4列 - IDNameScoreCash

如何使SQL查询按名称获取特定用户的排名。 就像有3个名字 - 乔[500分],汤姆[10分]和约翰[50分]。 当我要求汤姆的等级 - 它应该回应说汤姆在第三等级。当我问Joe的排名时,应该回答说Joe在第一名。

我的数据库:

http://image.prntscr.com/image/7ca1ddef8cd7491d81cd9e7ee5560b77.png

1 个答案:

答案 0 :(得分:0)

您可以使用稍微不同的方法:

select count(*)
from score s
where s.score >= (select s2.score from score s2 where s2.name = $name);

注意:如果存在关联,这可能会返回预期结果。以上是基于您的查询。你可能打算:

select 1 + count(*)
from score s
where s.score > (select s2.score from score s2 where s2.name = $name);

以上是如何编写查询的示例。如果从应用程序中调用它,请务必使用参数化查询。