필자는 이러한 종류의 데이터 정리를 여러 차례 수행했으며 사용자가 직접 수정 프로그램을 작성하는 것보다 쉽지는 모릅니다.
내가 추천 할 수있는 한 가지는 프로세스를 반복적으로 만드는 것입니다. (rulenum, pattern, new_value)와 같은 대체 테이블을 가져라. 그런 다음 테이블의 관련 비트 복사본으로 작업하여 전체 스크립트를 다시 실행할 수 있습니다.
그런 다음 확실한 것으로 시작하여 (그럴듯하게 보입니다) 더 애매한 것으로 이동하십시오. 궁극적으로 당신은 일치가없는 50을 가지게 될 것이고 당신은 수동으로 이것에 대한 엔트리를 패치 할 수 있습니다.
반복적으로 만드는 것은 처음 몇 번의 시도에서 잘못 일치하는 것을 찾기 쉽기 때문에 중요합니다.
그래서, (검증되지 않은 구문) 같은 일이 :
CREATE TABLE matches (rule_num int PRIMARY KEY, pattern text, new_value text)
CREATE TABLE cityfix AS
SELECT id, city AS old_city, '' AS new_city, 0 AS match_num FROM locations;
UPDATE c SET c.new_city = m.new_value, c.match_num = m.rule_num
FROM cityfix AS c JOIN matches m ON c.old_city LIKE m.pattern
WHERE c.match_num = 0;
-- Review results, add new patterns to rule_num, repeat UPDATE
-- If you need to you can drop table cityfix and repeat it.
난 당신이 운이 것 같아요. 할 수있는 일은 '% LONDON %'을 (를) 찾기 위해 와일드 카드를 사용하는 것입니다. 그러나 미리 알아 내지 않은 경우를 제외하고 어디로 매핑해야하는지 파악하는 방법은 없습니다. – andrewsi
왜 누군가가 당신을 하향 투표했는지 확실하지 않습니다. 나는 좋은 질문이라고 생각한다. 그래서 나는 0까지 되돌려 놓는다. 이걸 할 수있는 프로그램이 있는지 알아 보는 것은 흥미로울 것이다 ... –
나는이 곳에서 나는 행운이 될지도 모른다. 내가 16,000 이상의 카테고리를 가지기 전에 누군가가이 문제를 보았을 것이라고 생각했다. – dom