MySQL“LOAD DATA INFILE”和Missing Double Quotes

时间:2011-05-05 22:39:57

标签: mysql csv

我正在尝试使用LOAD DATA INFILE技术将CSV加载到MySQL中。它工作正常,但我有一个问题,其中一些列使用双引号,而有些列不使用。

示例:

something,123,something,"Bauer, Jack",123,something

引号内的逗号会导致导入失败,因此我的数据最终都会被填满。不确定如何使用双引号内的逗号进行导入。

mysql --user=<USER> --password=<PASS> -e "LOAD DATA INFILE '<FILENAME>' INTO TABLE <TABLENAME> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (col1, col2, col3, ...)" <DATABASE>

2 个答案:

答案 0 :(得分:46)

您需要使用附加选项

执行语句LOAD DATA INFILE
FIELDS OPTIONALLY ENCLOSED BY '"'

因此整个陈述成为

    LOAD DATA INFILE '<FILENAME>' INTO TABLE <TABLENAME>
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
(col1, col2, col3, ...)

如需进一步阅读,请参阅优秀的MySQL Reference Manual,例如:对于MySQL 5.1 GA。

答案 1 :(得分:0)

希望你现在已经知道要做什么了,但如果你不希望这会帮助你。

我在Excel 2007导出到自定义CSV文件时遇到了问题。我发现你可以在这里更改字段终止符:http://www.tek-tips.com/viewthread.cfm?qid=1635599&page=15

我更喜欢使用烟斗|角色虽然不常见,但在处理英寸“,脚”测量时更加灵活。