比如 会员积分所在所有会员当中,积分排第几名还有就是  按  日  周 月 期间积分排行榜,也就是这段时间里面又排第几名。

解决方案 »

  1.   

    create temporary table t (id int, a int);
    insert into t values (1, 3),(2, 8),(3, 6),(4, 9);
    set @m:=0;
    select *, @m:=@m+1 as m from t order by a descid a m 
     4 9 1 
     2 8 2 
     3 6 3 
     1 3 4 
      

  2.   

    create temporary table t (id int, a int);
    insert into t values (1, 3),(2, 8),(3, 6),(4, 9),(5, 8);
    set @m:=0;
    set @o:=0;
    select *, @m:=if(a=@o,@m,@m+1) as m, @o:=a from t order by a descid a m @o:=a 
     4 9 1 9 
     2 8 2 8 这里的 m
     5 8 2 8 和这里的 m
     3 6 3 6 
     1 3 4 3