다른 정보를 기반으로 한 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
이것은 내 CPU를 최대로 사용하고 결국 수행 된 업데이트의 일부만으로 시간 초과로 이어집니다 (일치 할 값이 수천 개 있음). 에 의한 매칭 value
이 느릴 것이라는 것을 알고 있지만 이것이 내가 함께 매칭해야하는 유일한 데이터입니다.
이와 같은 값을 업데이트하는 더 좋은 방법이 있습니까? 더 빠를 경우 병합 된 결과에 대한 세 번째 테이블을 만들 수 있습니까?
MySQL 시도 -다른 테이블의 값으로 테이블을 어떻게 업데이트 할 수 있습니까? ,하지만 실제로 도움이되지 않았습니다. 어떤 아이디어?
MySQL 초보자를 도와 주셔서 미리 감사드립니다!