我遇到一种情况:
我在mysql中有2个表:
我想通过加入验证update_streets
表来更新streets
表上的街道,并检查两个表中的county
和country
字段是否相同
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
样本数据
verify_street
id | street | county | country
---|---------------|--------|--------
1 | elize glove | varna | bulgaria
update_street
id | street | county | country
---|--------|--------|---------
1 | elize | varna | bulgaria
我需要用update_street
中的名字street
来更新verify_street
表,以便:update_street
中的elize成为elize手套。
答案 0 :(得分:0)
根据您的样本数据,我认为您需要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, '%')