mysql更新表设置column3其中table1.column1像concat ('%',table2.column2 ,'%')

标签 mysql concatenation

我最近看到(现在找不到)这个语法: ...像 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/

相关文章:

php - 注册页面上的操作 ="???"应该是什么?

mysql - "ADD AUTO_INCREMENT value"在 phpMyAdmin 中是什么意思

mysql - 考虑到两列,如何做一个 LIKE?

python - 合并(连接)带有缺失值和不同类型(str & int)的 Pandas 列

html - goquery- 从一个 html 标签中提取文本并将其添加到下一个标签

postgresql - 在 postgres 的 WHERE 子句中连接

PHP 表单接受空白字段登录

mysql - 使用另一个数据库的另一列中的值更新数据库中的列

MySQL查询性能慢

在 C 中连接字符串