Mysql循环赋值Update set

1 篇文章 0 订阅

结果图:

INDEX_COL之前是空值。

现在有一个需求,根据staraircraft_id进行分组。

同一个staraircraft_id下,对INDEX_COL从0开始排序赋值。

首先,需要进行排序。

select 
    id,
    staraircraft_id,
    i
from
    (select  
        staraircraft_id,
        id,
        @i:=if(@gen=staraircraft_id,@i+1,0) i,
        @gen:=staraircraft_id
    from gacs_staraircraftpic,(select @i:=-1,@gen:=null) temp
    order by id, staraircraft_id asc) b

这样就可以分组排序

再直接进行赋值即可。

成功代码:

UPDATE gacs_staraircraftpic a, 
(

select 
    id,
	staraircraft_id,
    i
from
    (select  
        staraircraft_id,
        id,
        @i:=if(@gen=staraircraft_id,@i+1,0) i,
        @gen:=staraircraft_id
    from gacs_staraircraftpic,(select @i:=-1,@gen:=null) temp
    order by id, staraircraft_id asc
    ) b

) c

SET a.index_col = c.i WHERE a.id = c.id

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值