mysql - 我如何更新层次结构连接表

标签 mysql

我对一种情况有疑问:

我在 mysql 中有 2 个表:

  • 更新街道
  • 验证街道

我想更新 update_streets 表上的街道,加入验证 streets 表并检查 countycountry 两个表中的字段相同

UPDATE
update_street p
INNER JOIN
verify_streets m
ON
p.county = m.verify_streets  AND p.country = m.country AND p.street = 
m.street %%
SET
p.street = m.street

Sample Data

verify_street
id | street        | county | country 
---|---------------|--------|--------
1  | elize glove   | varna  | bulgaria

update_street
id | street | county | country
---|--------|--------|---------
 1 | elize  | varna  | bulgaria

我需要使用 verify_street 中的第一个 street 名称更新 update_street 表,因此:elize from update_street成为 elize 手套。

最佳答案

根据您的示例数据,我认为您需要 LIKE 运算符:

UPDATE update_street p INNER JOIN verify_streets m
ON p.country = m.country  AND p.county = m.county AND m.street like concat('%', p.street, '%')
SET p.street = m.street

如果您希望 verify_streets 中的街道开始并且不包括 update_street 中的街道,则将 ON 子句的最后一个条件更改为:

m.street like concat(p.street, '%')

关于mysql - 我如何更新层次结构连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57627689/

相关文章:

mysql - WITH UNION ALL 无法使用 ORDER BY

mysql - SQL 查询 :Repeated Occurrences of user-login after (and including) first occurrence

c# - 如何检查商品在特定日期范围内是否可用

mysql - 使用 Count 连接 3 个表

mysql - Magento 2 安装卡在 51%

php - 条件 LEFT JOIN MYSQL PHP

php - 在 cake PHP 中使用服务器发送的事件

php - Magento 自定义管理选项卡在实时服务器中不起作用

MySQL:按比例向列添加值

mysql - 如何打印一个 MySQL 表来计算每个前三个驱动程序的驱动器数量?