mysql:用另一个表中的列值替换列值

标签 mysql

我有两个数据集 A 和 B。在这两个数据集中,我都有一个名为“Campaign”的列,但它们的名称不同。例如,在 A 中,事件被称为“CDE-332 Blabla”,在 B 中,同一事件被称为“FGI-332 Bleh Bleh”。另一个事件可能是 A 中的“CDE-345 Blabla”和 B 中的“FGI-345 Bleh Bleh”。基本上,连接行的是每个数据集中的 3 位数字。

我的问题是:有没有办法用 mysql 来替换 A 中 B 中看到的具有匹配 3 位数字的事件?谢谢!

最佳答案

使用SUBSTR()作为连接条件连接两个表,然后更新表A。

UPDATE TableA AS a
JOIN TableB AS b 
ON SUBSTR(a.campaign, LOCATE(a.campaign, '-')+1, 3) = SUBSTR(b.campaign, LOCATE(b.campaign, '-')+1, 3)
SET a.campaign = b.campaign

关于mysql:用另一个表中的列值替换列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39280884/

相关文章:

sql - Mysql,不存在,选择

sql - 基于列顺序的查询速度

mysql - 如果选择部分匹配该行的列之一,则触发对该行的列的更新

mysql - 列中包含附加结果的 GROUP BY 语句

mysql - 无法在本地机器上运行的服务器上编译程序

mysql - GROUP_CONCAT 逗号分隔符 - MySQL

php - Mysql查询Sum with Case

php while循环不正确地显示sql数据

mysql - SQL 中的子选择查询不会使用特定文本填充新列/字段

php - 比较2个字段并在MySQL中列出结果