本文介绍了MYSQL,将数据从一个表复制到另一个表,并以 varchar 递增的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两张桌子

表_1:用户

I have Two tables

Table_1 : users

id name
-------
1  john
2  john2
3  john3

表_2:tbl_account_level

Table_2 : tbl_account_level

ID    Code      Detail
------------------------
1     00001     GPS
2     00002     CAMERA
3     00003     Tracking System

现在,我想通过 mysql 将 users 表中的所有数据复制到 tbl_account_level 中,代码为 Varchar .

我的查询:

  insert into tbl_account_level (code, detail)select cast("00003" as unsigned) + 1, name from users ;

结果有点像,

ID    Code      Detail
------------------------
1     00001     GPS
2     00002     CAMERA
3     00003     Tracking System
4     4         john
5     5         john2
6     6         john3

我想要类似的结果

ID    Code      Detail
------------------------
1     00001     GPS
2     00002     CAMERA
3     00003     Tracking System
4     00004     john
5     00005     john2
6     00006     john3

推荐答案

可以使用lpad在增量后添加前导0

You can use lpad for adding the leading 0 after the increment

insert into tbl_account_level (code, detail)
select lpad(cast(code  as unsigned) + 1, 5 ,'0'), name 
from users

如果您需要行增量,您可以使用 multi 语句作为

and if you need row increment you coudl use a multi statement as

SET @row_number = 0; 
insert into tbl_account_level (code, detail)
select lpad(cast(code  as unsigned) +  @row_number:=@row_number + 1, 4 ,'0'), name 
from users ;

这篇关于MYSQL,将数据从一个表复制到另一个表,并以 varchar 递增的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-17 06:31