MySQL 两个字段的通配符匹配子串

MySQL Wildcard Match Substring for Two Fields

这是我想做的:

我有一个 MYSQL 数据库,它有几个字段 - 我指的字段是 contact_emailsite_url 在 table 称为 url_links

我正在寻找的是一个简单的 'update' 查询,如果匹配,它将设置一个二进制标志。

在伪代码中:

Update url_links SET domainMatch=1 where { substring of contact_email after @ } = { substring of site_url - could be http:// https:// https://www or any url - i.e. just the domain name }

所以如果电子邮件是 mywebsiteisgreat@gmail.com 并且域是 http://www.mywebsiteisgreat.com,它将不匹配

但如果电子邮件是 jim@mywebsiteisgreat.com,它会将 domainMatch 字段设置为 1 - 域匹配。

谢谢!

试试这个查询:

UPDATE url_links
SET domainMatch = 1
WHERE SUBSTRING_INDEX(contact_email,'@', -1)
LIKE CONCAT('%', SUBSTRING_INDEX(site_url,'.', -2), '%');

(我用数据库的实际字段名称更新了这个,这样我们可以更容易地测试它)