比如说 我要找 id=2 按照成绩排名  他是第多少名 

解决方案 »

  1.   

    自联,统计大于自己分数的人的个数+1SQL,需要你额外描述,另外,中文一般说 他是第几名
      

  2.   

    比如说 
    id  num
    1    10
    2    100
    3    20查询 id=2 的记录 按照num排序得到结果  1   (按照num排序  id=2 他的num是最大的 所以排名第一 返回 1)
      

  3.   

    同名如何处理?
    select a.id,a.num,count(b.id) from tt a inner join tt b on a.num<=b.num
    where a.id=2
    group by a.id,a.num
      

  4.   

    mysql> select *from tb1;
    +------+------+
    | id   | num  |
    +------+------+
    |    1 |   10 |
    |    2 |  100 |
    |    3 |   20 |
    +------+------+
    3 rows in set (0.00 sec)
    mysql> select * from (
        ->  select id,num,(select count(1) from tb1 where num>=t.num)  rank from tb1 t) a
        -> where id = 2;
    +------+------+------+
    | id   | num  | rank |
    +------+------+------+
    |    2 |  100 |    1 |
    +------+------+------+
    1 row in set (0.00 sec)
      

  5.   

    select * from (
        ->  select id,num,(select count(1)+1 from tb1 where num>t.num)  rank from tb1 t) a
        -> where id = 2;
      

  6.   

    select count(*)+1 from 比如说 where num>(select num from 比如说 where id=2)