mysql之在sql执行完后,给查询结果添加序号

在sql执行完后,给查询结果添加序号

select *
from (select (@i := @i + 1) as xh, a.score
      from (select score
            from sc
            where 1 = 1
            group by score
            order by score desc) a,
           (select @i := 0) t) b
where b.xh=14;

效果如下:

@i为mysql中变量的声明方式
:=为变量的赋值方式(当使用set赋值时也可以使用=,但使用select只能使用:=以区分=的比较功能)
from后面的(SELECT @i:=0) t是为了每次查询都使变量从0开始(序号从1开始),使变量归零重置;若不加,则下次查询的序号会在本次查询的基础上累加,而不会重新从1开始编号,效果如下:

t是(SELECT @i:=0)的别名,因为派生表必须有别名

posted @ 2022-07-24 02:20  King-DA  阅读(664)  评论(0)    收藏  举报