【问题标题】:Update Email Matching Between 2 Tables in MySQL - BLACKLIST更新 MySQL 中 2 个表之间的电子邮件匹配 - 黑名单
【发布时间】:2020-03-06 03:24:22
【问题描述】:

这是任何数据库管理员都需要完成的一项常见任务。这是一个简单的黑名单。我有 2 个表格,其中有共同的“电子邮件”字段。如果电子邮件在第一张桌子上匹配,我想要做的是在第二张桌子上设置 active=0。

这是伪代码

即update users set active =0 (on first table) 其中表 2 上的电子邮件与表 1 上的电子邮件匹配

最优雅的方法是什么?

表 1 名称 = '用户' 表 2 名称 = '黑名单'

这是更新后的脚本。我能够根据回复撰写正确的答案。响应是更新表 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

【问题讨论】:

    标签: mysql sql database join sql-update


    【解决方案1】:

    考虑:

    update users u
    inner join users_blacklist b on b.email = u.email
    set u.active = 0
    

    此查询的工作原理是 joining 两个表在其 email 列上,并仅更新匹配的记录。

    这假设:

    • users是要更新的表,users_blacklist是黑名单表

    • email是黑名单表中的唯一键

    【讨论】:

      猜你喜欢
      • 2014-08-14
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多