Mysql 不存在插入到中的sql的位置
我的sql正确吗?我想用WHERE NOT EXISTS检查一条记录是否存在,如果不存在,则只插入其中。我不知道数据是什么样的,但您可以这样做Mysql 不存在插入到中的sql的位置,mysql,sql,Mysql,Sql,我的sql正确吗?我想用WHERE NOT EXISTS检查一条记录是否存在,如果不存在,则只插入其中。我不知道数据是什么样的,但您可以这样做 INSERT INTO friend(`uId`,`friendId`) VALUES (?,?) WHERE NOT EXISTS (SELECT uId,friendId FROM friend WHERE uId=? && friendId=? 通常,检查记录是否存在的表与从中选择的表不同。在这里,这个问题没有多大意义。但我猜这只
INSERT INTO friend(`uId`,`friendId`) VALUES (?,?)
WHERE NOT EXISTS (SELECT uId,friendId FROM friend WHERE uId=? && friendId=?
通常,检查记录是否存在的表与从中选择的表不同。在这里,这个问题没有多大意义。但我猜这只是一个演示查询。值在哪里?您不使用values子句,其中使用Select语句插入数据,Select语句返回的结果集将为insert语句提供值。@是否留下注释?倒数第二句除外,这个答案是“对”的对立面。@草莓你想再详细说明一下“对”的对立面是什么?为什么你需要先检查一下?线索:你没有@因为我不想弄乱我复杂的表:p解决方案是在(uid,friendid)上添加一个唯一的索引,然后您可以使用INSERT IGNORE或INSERT…UPDATE on DUPLICATEKEY@StrawberryfriendId必须有重复的记录,所以我不能这样做friendId可以,但(id,friendId)不能。所以你可以而且必须这样做!
INSERT INTO friend_One (`uId`,`friendId`)
SELECT f.uId,f.friendId
FROM friend f
WHERE NOT EXISTS (SELECT 1
FROM friend_One
WHERE uId= f.Uid
AND friendId= f.friendId)