MYSQL Update如果一个子字符串存在于另一个表Inner Join中

时间:2016-09-19 17:06:59

标签: mysql email inner-join email-integration

我正在处理的是我们数据库的电子邮件清理脚本。通过这样做,我们确定了一个无效,破坏或不再存在的域列表。我们通过识别域名,即@符号后的所有内容来实现此目的。

update url_links
set link_bad=1,
    emailCarrier='bad-domain.com'
where contact_email like '%@bad-domain.com';

标识提供者并设置字段。问题是我们有数百个无效的域名(以上只是一个例子)

我想做的是'内部联接'到另一个名为'emailCarriers的表。我可以把它写成PHP中的一个循环,但是我想在这里询问社区是否有人在MySQL中有一个聪明的方法来做这件事。

emailCarriers表包含所有不良域运营商,因此查询将引用emailCarriers表并寻求在域名部分的子字符串上找到匹配(在@符号之后),如果匹配,那么它将执行更新并使用emailCarriers表中的相应域填写'bad-domain.com'。

谢谢!

2 个答案:

答案 0 :(得分:1)

$http.get("url").then(function() {
        $timeout(function() {
          // updateDom
        }, 0);
});

答案 1 :(得分:0)

您可以尝试这样的事情: -

UPDATE url_links u JOIN emailCarrier e 
ON u.SUBSTRING_INDEX(url_links, '@', 1) = b.provider
SET link_bad = 1