Обновить столбец значением из другой таблицы - PullRequest
1 голос
/ 09 июля 2020

У меня есть две таблицы: Table1

id name node
============
1 John 2277415921,2277415917,2277415929,2277415937
2 Jane 1098140458,1098146293,1098145477,1098140669

и Table2

id nodeid      name
==================
1  2277415937  Kirk
2  1098140669  Serena

Мне нужно UPDATE столбец name в table1 из table2, когда значение из столбца nodeid в table2 находится в столбце node в table1

Я пробую этот способ, но он не работает

UPDATE table1 t1
INNER JOIN table2 t2 ON t1.node LIKE '%'+t2.nodeid+'%'
SET t1.name = t2.name

Может подскажите пожалуйста, как это сделать? Спасибо

1 Ответ

1 голос
/ 09 июля 2020

У вас ужасная модель данных. А в MySQL + означает только сложение. Вы можете использовать find_in_set():

UPDATE table1 t1 INNER JOIN 
       table2 t2
       ON find_in_set(t2.node_id, t1.node)
    SET t1.name = t2.name;

Обратите внимание, что вам следует потратить свои усилия на исправление table1 (одна строка на узел, а не строка). Не тратьте время на попытки разобраться в модели данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...