LOAD DATA INFILE和Double Quotes

问题描述 投票:0回答:1

当我将表导出到csv时,fputcsv将双引号添加到带空格的值,例如:

day|night|summer|winter
something|123|something|"Bauer Jack"
foo|bla|5|dooper

我发现我无法避免这种情况。

当我尝试使用LOAD DATA INFILE导入此csv时,问题就出现了,它不会导入包含双引号的行。因此,使用“Bauer Jack”示例的行不会导入到mysql中。

$query = <<<eof
LOAD DATA LOCAL INFILE '$filename' INTO TABLE `table_name`
FIELDS TERMINATED BY '|' 
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
eof;

你能建议一个解决方案吗?为什么没有导入带双引号的行?

当我从csv文件中删除双引号时,一切正常。

mysql csv
1个回答
0
投票

首先尝试使用OPTIONALLY ENCLOSED BY子句。

$query = <<<eof
LOAD DATA LOCAL INFILE '$filename' INTO TABLE `table_name`
FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '|' 
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
eof;
© www.soinside.com 2019 - 2024. All rights reserved.