我最近看到(现在找不到)这个语法: ...像 CONCAT('%',col1,'%')
它适用于选择,但对于更新,它影响 0 行 这是我的查询:
update locations set email = (
select col2 from vendoremail
where locations.city LIKE CONCAT('%',col1,'%')
AND locations.zip LIKE CONCAT('%',col1,'%')
)
这是 col1 的示例: “455 N Cherokee St:马斯科吉,OK 74403” 不带引号
我希望我已经提供了足够的数据来得出一两个答案 - 谢谢!
最佳答案
你把它搞反了。您想将城市和邮政编码放入模式中。
update locations set email = (
select col2 from vendoremail
where col1 LIKE CONCAT('%', locations.city, '%', locations.zip, '%')
)
但是,这可能并不总是正常工作。如果您有两个供应商位于同一城市+邮政编码,则子查询将返回 2 封电子邮件,但当您使用子查询作为值时,它只能返回 1 行。您可以将 LIMIT 1
添加到子查询中,以防止发生这种情况时出现错误。但它会不可预测地选择一个供应商——也许您应该想出一种更可靠的方法来匹配表格。
关于mysql更新表设置column3其中table1.column1像concat ('%',table2.column2 ,'%'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39756395/