我已经阅读了大部分答案,甚至尝试过。但这是我的情况,我将.csv
文件中的记录插入数据库。我想插入一条记录,如果它不存在。
这是我的查询
INSERT INTO retailer(retailerCode, contact, shopName, address,
retailerType, lastVisit, officeID, createDate)
VALUES ('', '$emapData[1]', '$emapData[2]', '$emapData[3]',
'$emapData[4]', '', '$id', CURDATE())
WHERE NOT EXISTS (SELECT retailerID
FROM retailer
WHERE contact = '$emapData[1]')
此处$emapData
是一个PHP数组,用于保存.csv
文件的记录。没有这部分
WHERE NOT EXISTS (SELECT retailerID
FROM retailer
WHERE contact = '$emapData[1]')
但我的目标没有实现。
答案 0 :(得分:0)
你不能以这种方式使用WHERT和INSERT。
你能做什么:
正如@Sylwit建议的那样,在联系时创建唯一索引并使用INSERT IGNORE
alter table retailer add unique (contact)
使用INSERT INTO SELECT语法
INSERT INTO retailer(retailerCode,contact,shopName,address,retailerType,lastVisit,officeID,createDate)
select '','$emapData[1]','$emapData[2]','$emapData[3]','$emapData[4]','','$id', CURDATE()
from retailer
WHERE NOT EXISTS (SELECT retailerID FROM retailer WHERE contact='$emapData[1]')