mysql中分别有a表和b表,需要通过a表的门店名称列模糊匹配b表的门店名称列,将匹配到的b表门店名称录入到a表中
时间: 2024-09-25 15:13:02 浏览: 34
php列出mysql表所有行和列的方法
在MySQL中,你可以使用`JOIN`和`LIKE`关键字结合来实现这种模糊匹配的功能。假设`a`表和`b`表都有一个名为`store_name`的字段,可以使用以下SQL查询:
```sql
UPDATE a
SET b_store_name = b.store_name
FROM a
LEFT JOIN b ON a.store_name LIKE CONCAT('%', b.store_name, '%')
WHERE a.store_name IS NULL OR b.store_name IS NOT NULL;
```
这个查询做了两件事:
1. `LEFT JOIN`: 将`a`表的所有记录都与`b`表按`store_name`列进行连接,即使`a`表中有找不到匹配的记录。
2. `LIKE CONCAT('%', b.store_name, '%')`: 使用通配符`%`对`a`表的`store_name`进行模糊匹配,查找包含`b`表`store_name`的字符串。
然后,`WHERE`条件过滤结果,只保留那些`a.store_name`为空或者`b.store_name`非空(即找到匹配项)的行,把`b.store_name`的值设给`a.b_store_name`。
阅读全文