从csv加载数据并基于多列匹配mysql忽略重复记录

时间:2018-10-29 16:46:30

标签: php mysql database mysqli

我有一个csv文件,其中有n条记录。现在我想将其导入表中。我也想忽略重复的记录(如果特定的两列具有相同的值,则考虑重复)。我还将标头传递到查询值中,以便将reoced插入数据库表的适当列中

我的查询是  $ header是csv标头 $ basePath是csv的基本路径位置

  $query = sprintf("LOAD DATA local INFILE '%s' INTO TABLE table name FIELDS TERMINATED BY '`' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\\n'   (duplicatematchcol1,duplicatematchcol1) IGNORE 0 LINES (" . implode(',', $header) . ") , addslashes($basePath));

1 个答案:

答案 0 :(得分:0)

如果您在定义重复项的列上有一个UNIQUE索引,则始终可以使用INSERT IGNORE INTO ...方法来忽略此类插入错误。

即使在IGNORE查询中,LOAD DATA标志也应可用。