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. MySQLを使用したJDBCは非常に遅いので、理由はわかりません

    2. 1:1のユーザー関係をリレーショナルデータベースに保存するための最良の方法

    3. 別の列に対してリレーションテーブルをクエリする

    4. herokuで.sqlスクリプトを実行する方法は?