MYSQL, копировать данные из одной таблицы в другую с шагом в varchar - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть две таблицы

Таблица_1: пользователи

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

Таблица_2: tbl_account_level

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

Теперь я хочу скопировать все данные из таблица пользователей в tbl_account_level через mysql, а кодовый номер 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

1 Ответ

1 голос
/ 30 апреля 2020

Вы можете использовать lpad для добавления начального 0 после приращения

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

, и если вам нужно приращение строки, вы можете использовать оператор multi как

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 ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...