如何将查询与sql中的表进行比较

时间:2016-06-22 16:42:31

标签: php mysql sql

我有查询,找到订阅的人,并将他们的电子邮件插入表中。要更新它,它总是截断表并再次插入其中的所有记录。 现在 我希望这不会每次都截断并插入所有数据(对于非常大的记录需要很长时间),但是如果有更改则执行选择并检查旧表,并且只添加/删除这些少量记录到表

任何想法我将如何处理此解决方案?

2 个答案:

答案 0 :(得分:0)

如果不存在,语句可以检查电子邮件是否存在,如果没有写入插入语句。下面是一个例子希望它可以帮助你:)     如果不存在(从t_emails中选择*,其中email = @ yoursuscribeemail)     开始     插入t_emails(email)值(@yoursuscribeemail)     结束 我假设suscribe电子邮件来自用户端。如果没有评论

答案 1 :(得分:0)

delete from subscriber_emails
where email in (select email from subscriber_emails e
join users u on e.email=u.email
where u.subscribed=false);

insert into subscriber_emails (email)
select email from users u
outer join subscriber_emails e on u.email=e.email
where e.email is null;

由于我不知道两个表的模式,我必须在这里使用一些占位符,根据需要更改关键字。