我有一个csv
文件。我需要将内容加载到表中。有些字段中包含逗号,但我在这些字段中遇到错误。此命令截断此逗号中的字段。如何改进忽略字段值中逗号的命令。下面是我的SQL命令:
LOAD DATA INFILE 'C:/myfile.csv'
IGNORE
INTO TABLE db.table
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
(col1,col2,col3,col4,col5,col6);
编辑:我的csv文件字段不包含在
"
编辑:csv中的数据示例:
col1 | col2 | col3 | col4 | col5 | col6
------------------------------------------------------------
1111 | 2222 | 3333 | 4444 | 5555 | firstname, lastname
以以下方式存储在MySQL中:
"firstname, lastname" .. followed by all the next fields until the column is filled and truncated.
最佳答案
你有两个选择
选择1
要求一个有效的RFC 4180CSV文件而不是一个好的文本文件
选择2
接下来是LOAD DATA INFILE语法
LOAD DATA INFILE 'C:/myfile.csv'
IGNORE
INTO TABLE db.table
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
( col1, col2, col3, col4, col5, @firstname, @lastname )
SET col6 = CONCAT_WS( ' ', @firstname, @lastname );
关于mysql - 将CSV文件加载到表中时如何忽略字段内的逗号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13963463/