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

zf2sa74q  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(255)

我有一个csv文件有n个记录。现在我想把它导入表中。我还想忽略重复的记录(如果特定的两列具有相同的值,则考虑duplicate)。我还将头传递到查询值中,以便将reoced插入到数据库表的相应列中
我的查询是$header是csv header$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));
3xiyfsfu

3xiyfsfu1#

如果你有 UNIQUE 在定义重复的列上创建索引您可以始终使用 INSERT IGNORE INTO ... 这种插入错误被忽略的方法。
这个 IGNORE 即使在 LOAD DATA 查询。

相关问题