这是任何数据库管理员都需要执行的常见任务。这是一个简单的黑名单。我有两个表,其共同字段为“电子邮件”。我想要做的是,如果电子邮件与第一个表匹配,则在第二个表上设置 active=0。
这是伪代码
即更新用户设置事件 =0(在第一个表上),其中表 2 上的电子邮件与表 1 上的电子邮件匹配
最优雅的方法是什么?
表 1 名称 = '用户' 表2 name = '黑名单'
这是更新后的脚本。我能够根据回复编写正确的答案。响应更新了表 2,而不是表 1 - 即相反。
这是完成的脚本...
update users u
inner join blacklist b on u.email=b.email
set u.active=0 ;
有一篇与此类似的帖子给出了答案,但是如何用他们给出的答案来做到这一点并不清楚。看看....
Update column based on matching values in other table in mysql
最佳答案
考虑:
update users u
inner join users_blacklist b on b.email = u.email
set u.active = 0
此查询的工作原理是在两个表的 email
列上联接
,并仅更新匹配的记录。
这假设:
users
是要更新的表,而users_blacklist
是黑名单表email
是黑名单表中的唯一键
关于mysql - 更新 MySQL 中 2 个表之间的电子邮件匹配 - 黑名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58784442/