问题描述
我正在使用:
LOAD DATA LOCAL INFILE '$filePath'
INTO TABLE demo
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
我发现导入包含JSON字符串的单元格的行时遇到了麻烦:
0,demo,"{""Name""=>""demo""}",29,...
注意"{""Name""=>""demo""}"
部分。
因此,我删除了OPTIONALLY ENCLOSED BY '"'
并解决了该问题。
但是现在我遇到了一个值为"Korea,Republic of"
13,"Korea,Republic of",...
有什么办法可以同时处理这两种情况?
注意:输入文件是我的外部文件,因此我无法对其进行“重组”。
解决方法
如果您将"
指定为转义符,是否可行?
LOAD DATA LOCAL INFILE '$filePath'
INTO TABLE demo
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY '\r\n'
实际上,这似乎与一个特定的documentation note相匹配:
为避免歧义,字段值中
ENCLOSED BY
字符的出现可以加倍,并解释为该字符的单个实例。例如,如果指定了ENCLOSED BY '"'
,则引号的处理如下所示:"The ""BIG"" boss" -> The "BIG" boss` The "BIG" boss -> The "BIG" boss The ""BIG"" boss -> The ""BIG"" boss