Пакетное обновление данных таблицы базы данных в Mysql - PullRequest
1 голос
/ 12 октября 2011

Привет, у меня есть две таблицы.

tbl1

id             int(11)      NOT NULL

positionName   varchar(20)  NULL

positionId     int(11)      NULL

tbl2

positionId         int(11)      NOT NULL

positionName       varchar(20)  NULL

Изначально в tbl1 нет столбца positionId. Теперь будет использовать positionId вместо positionName для tbl1.

Проблема в том, что в обеих таблицах уже хранится более тысячи данных.

Итак, как мне успешно и быстро дать ссылку на правильный positionId для всех данных tbl1, в которых positionName ранее использовался?

Является ли пакетное обновление способом?

В любом случае я могу выполнять все с помощью браузера SQL? Если возможно, я не хочу использовать кодирование.

Спасибо вперед.

1 Ответ

1 голос
/ 12 октября 2011

Вы ищете несколько столов UPDATE, как это?

UPDATE tbl1
JOIN tbl2 ON tbl1.positionName = tbl2.positionName
SET tbl1.positionId = tbl2.positionId
WHERE tbl1.positionId IS NULL

Я предполагаю, что positionName уникален в tbl2, но если это не так, вам нужно подумать, как вы хотите с этим справиться.

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