Mysql 使用另一个表中的值更新列
我有两张桌子: 表1 和表2Mysql 使用另一个表中的值更新列,mysql,sql,mariadb,Mysql,Sql,Mariadb,我有两张桌子: 表1 和表2 id nodeid name ================== 1 2277415937 Kirk 2 1098140669 Serena 当table2中的nodeid列中的值位于table1中的节点列中时,我需要更新表1中的名称列 我试着这样做,但不起作用 UPDATE table1 t1 INNER JOIN table2 t2 ON t1.node LIKE '%'+t2.nodeid+'%' SET t1.name = t2.nam
id nodeid name
==================
1 2277415937 Kirk
2 1098140669 Serena
当table2
中的nodeid
列中的值位于table1
中的节点
列中时,我需要更新表1
中的名称
列
我试着这样做,但不起作用
UPDATE table1 t1
INNER JOIN table2 t2 ON t1.node LIKE '%'+t2.nodeid+'%'
SET t1.name = t2.name
你能告诉我怎么做吗?谢谢你的数据模型太糟糕了。在MySQL中,+
仅表示添加。您可以使用find\u in\u set()
:
注意:您应该努力修复表1
(每个节点一行,而不是一个字符串)。不要花时间去理解数据模型
UPDATE table1 t1
INNER JOIN table2 t2 ON t1.node LIKE '%'+t2.nodeid+'%'
SET t1.name = t2.name
UPDATE table1 t1 INNER JOIN
table2 t2
ON find_in_set(t2.node_id, t1.node)
SET t1.name = t2.name;