我有一个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/

10-13 08:20
查看更多