FieldA의 값과 FieldB의 다른 값이 비교 목적으로 다운 스트림 함수에 저장됩니다. 나는 비교할 필요하면 내가 mysql을 함께 할 FieldA = FieldB :스핑크스를 사용하여 필드 비교 및 / 또는 업데이트
Select TableA T1
Inner Join TableB T2
On T1.ID=T2.ID
and T1.FIeldA=T2.FIeldB
Set Matched='Y'
그러나 서로 다른 소스에서 온 이후 확인 FieldA 및 FieldB 내가 먼저 예를 들어, 복잡한 표준화 MySQL의 업데이트를 실행해야합니다 동일하게하기 위해
Update TableA set Field1 Set Field1=Replace(Field1,'Gato','Cat) where Field1 like '%Gato%
합니다 (위 실패 할 수 있습니다 어디 실제로 어디 있는지 용어가 전체 단어를 만들기 위해 정규식을 사용하지만 간단한 질문을 유지하고 싶었 단지의 경우 사람이 지적 강요 느꼈다).
문제점은 내가 업데이트해야 할 약 2,000 개의 용어가 있으므로 두 필드 모두에서 그리고 필자가 비교할 때마다 2000 개의 쿼리를 모두 실행해야합니다.
그래서 나에게 이상적인 솔루션은 스핑크스가 될 수있는 것처럼 보였습니다. 여기서 나는 wordforms 또는 regexp를 입력 할 수있었습니다.
Gato>Cat
Perro>Dog
인덱스
테이블 다음 Gato
및 Cat
일치 할 수 있도록 그들을 비교하는 스핑크스를 사용합니다.
그러나 두 필드 사이에 Match
을 수행하는 q sphinxQL 쿼리를 구조화하는 방법을 알 수는 없으므로 업데이트에도 영향을 미칩니다. 그런 해결책이 있습니까? 이론적으로
btw는 서브 쿼리를 사용하기 시작했으나 곧바로 직선 조인을 사용할 수 있다고 생각했습니다. 스핑크스 테이블이 오른쪽에 있음). 그러나 테스트되지 않은 경우 하위 쿼리가 필요할 수 있습니다. 그러나 개념은 같습니다. – barryhunter
나는 시도 할 것이다. 프로세스의 느린 속도는 모든 필드와 테이블에 대해 표준화를 실행해야한다는 점에서 상쇄되어야한다. 그 테이블에 대해 하나의 스핑크스 인덱스를 반복해서 갖고 싶어한다. 내가 다시보고 할 것입니다 – user3649739
그냥 내 테이블을 반영하기 위해 일을 변경하기 전에 그걸 시도 해봤는데이'[Err] 1064 - sphinxql : 구문 오류, 예상치 못한 IDENT, 기대하는 SET 또는 ','근처 'INNER JOIN SphIndexB 일치하는 SET = 'Y' WHERE SphIndexB.query = CONCAT ('@ FIeldB "^', TableA.Field1, '$"; 모드 = 확장, 제한 1') '' – user3649739