sql >> Database teknologi >  >> RDS >> Mysql

mysql:opdel varchar-værdi og indsæt dele

Sådan fungerer det, inklusive testdata og så videre.

Men overveje, at dette bare er en sjov svar. Vejen at gå er helt klart en lagret procedure eller en funktion eller hvad som helst.

drop table testvar;
create table testvar (id int, codes varchar(20));
insert into testvar values (1, '|1|2|3|4'), (2, '|5|6|7|8');



drop table if exists inserttest;
create table inserttest (id int, code int);

select @sql:=left(concat('insert into inserttest values ', group_concat( '(', id, ',', replace(right(codes, length(codes) - 1), '|', concat( '),(', id, ',' )), '),' separator '')), length(concat('insert into inserttest values ', group_concat( '(', id, ',', replace(right(codes, length(codes) - 1), '|', concat( '),(', id, ',' )), '),' separator ''))) -1)
from testvar;

prepare stmt1 from @sql;
execute stmt1;

select * from inserttest;


  1. Tilslutning af RStudio til SQL Server

  2. MySQL-forespørgsel gået vild?

  3. Anonym TABLE- eller VARRAY-type i Oracle

  4. MySQL kun inden for den aktuelle måned?