sql >> Database >  >> RDS >> Mysql

mysql:varchar-waarde splitsen en delen invoegen

Hier is hoe het werkt, inclusief testgegevens, enzovoort.

Maar bedenk dat dit gewoon een leuke is antwoorden. De weg te gaan is duidelijk een opgeslagen procedure of een functie of wat dan ook.

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. Ontsnappen van kolomnamen in PDO-statements

  2. Wat zijn de stappen bij het ontwerpen van databases?

  3. Hoe verwijder ik cascade op MySQL MyISAM storage engine?

  4. Hoe PHP te dwingen nieuwe regels te lezen en terug te keren als