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)的别名,因为派生表必须有别名
本文来自博客园,作者:King-DA,转载请注明原文链接:https://www.cnblogs.com/qingmuchuanqi48/articles/16513756.html

浙公网安备 33010602011771号