我有一个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));
答案 0 :(得分:0)
如果您在定义重复项的列上有一个UNIQUE
索引,则始终可以使用INSERT IGNORE INTO ...
方法来忽略此类插入错误。
即使在IGNORE
查询中,LOAD DATA
标志也应可用。