select * from table显示5条记录id, name
1 a
2 b
5 c
7 d
10 e我如何知道id=2在这个表里排第几呢?能不能一条sql搞定,非常感谢

解决方案 »

  1.   

    SELECT COUNT(*) FROM table 
    WHERE id<=2;
      

  2.   

    如果ID是唯一的话,可以用楼上代码,也可以加入自增字段ID1,直接
    SELECT ID1 FROM TT WHERE ID=2
      

  3.   

    select id,name,(select count(*)+1  from t a where a.id<b.id) as '名次'
    from t b
    +------+------+------+
    | id   | name | 名次 |
    +------+------+------+
    |    1 | a    |    1 |
    |    2 | b    |    2 |
    |    5 | c    |    3 |
    |    7 | d    |    4 |
    |   10 | e    |    5 |
    +------+------+------+