我有一张这样的 table
mytable(`id` int, 'number1' varchar(11), 'number2' varchar(1200))
我也有类似cvs的文件
111111111,222222222,333333333,44444444,,,
222222222,333333333,
111111111,555555555,666666666,
它们之间用“,”(或其他东西)分隔 csv 有 100 列。
我想将第二列到第 100 列合并到 mysql“number2”中, 第一列进入mysql“number1”。
像这样:
id number1 number 2
1 111111111 222222222,333333333,44444444
2 222222222 333333333
3 111111111 555555555,666666666
那么我可以使用 LOAD DATA INFILE 将文件加载到表中吗?我怎样才能做到这一点..?还是有其他方法?
谢谢。
最佳答案
这是一个选项,它创建一个新列,将第 2 列到第 100 列组合起来:
LOAD DATA INFILE 'input.csv'
INTO TABLE myTable
COLUMNS TERMINATED BY ','
IGNORE 1 LINES
(id, number1, number2, ..., number99)
SET newCol = CONCAT(NULLIF(number1, ''), NULLIF(number2, ''), ..., NULLIF(number99, ''));
然后,您可以从 MySQL 中删除第 2 列到第 100 列:
ALTER TABLE myTable
DROP COLUMN number1,
DROP COLUMN number2,
...
DROP COLUMN number99
关于python - 将多个 CSV 字段导入一个 MySQL 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39737398/