mysql - 如何将 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;
解决方案
推荐阅读
- android - 创建可扩展的网格视图
- python - 在校验和错误的情况下如何丢失尽可能少的字节
- c# - 在 NavigationView 中隐藏 AutoSuggestBox
- json - 如何在golang中对特殊的json字符串进行base64编码?
- c# - wpf getter 和 setter
- python - 如何在 Python 中制作多键击键功能
- python - python - SyntaxError:for循环块后的语法无效
- python - 为什么分治比reduce更快解决合并K排序列表
- java - 多个贴纸擦除问题
- java - 我不知道为什么在使用 AsyncTask 时仍然出现“android.os.NetworkOnMainThreadException”错误