Я пытаюсь обновить одну таблицу MySQL на основе информации от другой.Обновить одну таблицу MySQL со значениями из другого
Моя original
таблица выглядит следующим образом:
id | value
------------
1 | hello
2 | fortune
3 | my
4 | old
5 | friend
И tobeupdated
таблица выглядит следующим образом:
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | | old
4 | | friend
5 | | fortune
Я хочу обновить id
в tobeupdated
с id
из original
на основе value
(строк, хранящихся в VARCHAR(32)
раздел).
Обновленная таблица, мы надеемся, выглядит следующим образом:
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | 4 | old
4 | 5 | friend
5 | 2 | fortune
У меня есть запрос, который работает, но очень медленно:
UPDATE tobeupdated, original
SET tobeupdated.id = original.id
WHERE tobeupdated.value = original.value
Это исчерпан мой процессор и в конечном итоге приводит к тайм-аут с выполняется только небольшая часть обновленных обновлений (имеется несколько тысяч значений). Я знаю, что совпадение на value
будет медленным, но это единственные данные, которые мне нужно сопоставить.
Есть ли лучший способ обновить такие значения? Я мог бы создать третью таблицу для объединенных результатов, если бы это было быстрее?
Я пробовал MySQL - How can I update a table with values from another table?, но это действительно не помогло. Есть идеи?
Заранее благодарим за помощь новичку MySQL!
В столбце «значение» есть индекс? – noodl
Hi noodl; no, 'value' на данный момент не имеет индекса. – Superangel