Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql:разделяне на стойността на varchar и вмъкване на части

Ето как работи, включващи тестови данни и така нататък.

Но смятайте, че това е просто зазабавление отговор. Начинът, по който трябва да се върви, е явно съхранена процедура или функция или каквото и да било.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Експортиране на таблица HBase към mysql

  2. Как търсенето в Gmail е толкова бързо?

  3. Избиране на стойностите на колоните на таблицата за свързване като име на колона за резултат

  4. Примка на PDO и отпечатване на fetchAll

  5. MySQL инсталира и зарежда база данни на скрипт Inno Setup