我有一张emails
表和一张domains
表。如何UPDATE
电子邮件列设置domain_id
foreign_key
到表格域。
域
domain_id domain
1 google.co.uk
2 google.com
3 domain.com
4 domain.gov.au
电子邮件
email_id email domain_id
1 john@admin.google.co.uk
2 john@google.com
3 john@ne.domain.gov.au
4 john@domain.com
棘手的部分是电子邮件可以基于顶级域名或子域名。
答案 0 :(得分:2)
这是一种方法:
update emails e join
domains d
on e.email like concat('%', d.domain)
set e.domain_id = d.id;
注意:这不高效,因为它不会使用索引。但是对于一次性的努力,应该没问题。
答案 1 :(得分:1)
以下是使用LIKE
运算符
select E.email_id, E.email, D.domain_id
from Domains D
Inner Join Emails E
ON E.email like concat('%',D.domain,'%')
以上查询可以转换为Update
语句