我有两个mysql表sent
和queue
。我将成员插入queue
表中。但是我不想再次插入同一个成员 - 如果他们在sent
表中。他们已经收到邀请。Mysql在插入数据时检查重复项
如何检查插入queue
的成员是否不存在于sent
?
我有两个mysql表sent
和queue
。我将成员插入queue
表中。但是我不想再次插入同一个成员 - 如果他们在sent
表中。他们已经收到邀请。Mysql在插入数据时检查重复项
如何检查插入queue
的成员是否不存在于sent
?
INSERT
INTO queue (member)
SELECT $member
FROM dual
WHERE $member NOT IN
(
SELECT member
FROM sent
)
尝试从发送的表中选择用户,如果没有返回的行,则插入到队列表中。否则什么都不要做对于比您更深入的深度,您需要披露更多的架构以及将用户称为唯一(电子邮件地址?)的内容。
如果这是你的应用程序的原则,即不能有相同的队列中的条目,为什么不加唯一约束(上MEMBER_EMAIL,member_id或任何标识可能是)你的队列表? 然后,您可以使用REPLACE INTO插入数据......实际上意思是: 如果存在具有相同主键或唯一键的现有值,则在插入新键值之前将删除它。
REPLACE INTO queue (member_email, queue_detail)
VALUES ('already_existing_email', 'some_data');
这实际上会更新has_existing_email与'some_data'的输入。
如果没有条目* already_existing_email *,则会插入数据。