首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用MySQL中的整型数字序列填充列

用MySQL中的整型数字序列填充列
EN

Stack Overflow用户
提问于 2016-04-28 01:13:44
回答 3查看 258关注 0票数 0

我必须修改我的表,添加一个列,我必须用整型数序列填充它。有没有人知道我该怎么填这一栏?我试过这个:

代码语言:javascript
复制
set @i = 1;
Update db.table set new_column=(@i := @i+1) where id>0;

但这只是用数字2填充所有行。=(

EN

回答 3

Stack Overflow用户

发布于 2016-04-28 01:44:19

您可以轻松地做到这一点:

代码语言:javascript
复制
UPDATE db.table 
CROSS JOIN ( SELECT @myid := 0) AS parameter
SET new_column = @myid := (@myid +1);
票数 2
EN

Stack Overflow用户

发布于 2016-04-28 01:16:42

试一试

代码语言:javascript
复制
Update your_table
join
(
   select id, @i := @i+1 as rank
   from your_table
   cross join (select @i := 0) ia
   where id > 0
   order by id
) tmp on tmp.id = your_table.id
set your_table.new_column = tmp.rank
票数 1
EN

Stack Overflow用户

发布于 2016-04-28 02:22:24

所有这些答案对我都是有效的。然后我又做了一次

代码语言:javascript
复制
delimiter #
create procedure fill_column()
begin
  declare v_max int unsigned default 83;-- number of registers that I have
  declare v_counter int unsigned default 0;
  declare a int default 0;
    start transaction;
    while v_counter < v_max do
       update db.tb_table set new_column= (@a := @a+1) where id> 0; 
       set v_counter=v_counter+1;
    end while;
 commit;
end #
call fill_column();

谢谢你们=)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36896545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档