使用MySQL LOAD DATA INFOILE导致基于相同执行查询的结果不一致


Using MySQL LOAD DATA INFILE leading to inconsistent results based on same query of execution

我正试图确定为什么这两个LOAD DATA INF会产生不同的结果。下面的两个查询都导入数据。

在带有exec的第一个查询中,不会从表字段中删除引号。第二个查询按预期删除引号。我已经尝试了exec查询的所有变体——同样的问题。。。例如,我尝试过:

''"' - (as is now)
"' . " . '"
'"' - (this of course won't work because it needs escaping ' )
'" . " . "' - (this also needs escaping)
'"'"

还有很多其他的变化。

示例输出(在表格字段中):

问题1:"Joe Smoe"

问题2:Joe Smoe

我看错问题了吗我也试过几次重新编写查询,但确定我已经正确编写了查询。

我对完全相同的数据运行这些查询它们都加载数据,但第一个查询未能从字符串中删除"(引号)

查询1

exec(mysql -u root -e '"USE mydb; LOAD DATA INFILE '" . $file . "' INTO TABLE  myTable FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''"' LINES TERMINATED BY '''n''"; ");

查询2

LOAD DATA INFILE 'filepath' INTO TABLE myTable FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY ''n';

通过执行以下操作解决此问题:

$mysqli->query("LOAD DATA INFILE '" . $file . "' INTO TABLE  myTable FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''"' LINES TERMINATED BY ''n'");
相关文章: