首页 > 解决方案 > 如何将 csv 列复制到多个字段表中?

问题描述

我有一个mysql包含一个长text字符串的 calumn,它是 csv。我想在 sql 中拆分 csv 并将其插入到一个新表中,大约 100 列。这样每个 csv 列都会变成一个表列。

当然我可以SUBSTRING_INDEX(csv, ';', <index>)一遍又一遍地使用,但这会导致 100 倍的分裂。

如何将 csv 列拆分为某种类型的数组,并在其上使用引用,例如通过索引?

INSERT INTO employees (id, name, csv) VALUES
(1, 'John Doe', 'long;csv;string;up;to;100;fields');

INSERT INTO TARGET_TABLE SELECT 
    SELECT 
         SUBSTRING_INDEX(csv, ',', 1)
         SUBSTRING_INDEX(csv, ',', 2)
         SUBSTRING_INDEX(csv, ',', ...)
         SUBSTRING_INDEX(csv, ',', 100)
    FROM employees;

标签: mysqlsql

解决方案


推荐阅读