MYSQL:根据与另一个表字段的部分匹配更新客户字段

标签 mysql

我有两个表:

客户、公司

客户表包含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;  

http://sqlfiddle.com/#!9/89765/1

关于MYSQL:根据与另一个表字段的部分匹配更新客户字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32254812/

相关文章:

javascript - 无法使用 Node.js 批量插入到 mysql

php - 选择当月的记录而不进行全表扫描

mysql - 高级 SQL 选择查询(唯一行)(分组依据)

php - INNER JOIN 停止查询工作

mysql - 无法从终端启动MySQL

mysql - express.js 中的 API 删除方法错误

mysql - 具有多个 JOIN varchar 条件的表的索引

php - 如何使用 PHP 将此日期转换为 mySQL 时间?

mysql - 使用原始 sql 时的 Laravel SQL 参数绑定(bind)

MySQL 左连接在没有数据的情况下填充值