LOAD DATA INFILE-带有可选引号和逗号的问题

问题描述

我正在使用:

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...