我有两个表:
客户、公司
客户表包含company_id和email_address,而公司表包含company_id和URL
我想运行一个查询,将所有客户表的 company_id 更新为基于部分匹配的匹配的 company_id - 特别是如果客户的 email_address 包含 URL。
例如,如果客户拥有 customer@google.com,它会检查公司表以查看该电子邮件是否包含网址 google.com,如果包含,则会向客户提供公司表中匹配的 company_id。
在单个查询中执行此操作的有效方法是什么?谢谢!
最佳答案
我认为这正是你想要的:
UPDATE customer
LEFT JOIN company
ON (customer.email LIKE CONCAT('%@', company.URL, '%'))
SET customer.company_id = company.company_id
WHERE company.company_id IS NOT NULL;
关于MYSQL:根据与另一个表字段的部分匹配更新客户字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32254812/