MySQL 레코드에 적어도 2 개의 유사한 문자열을 표시하는 프로그램이 있습니다. 현재 잘 작동하지만 너무 느린 300K 레코드가 있습니다.mysql에서 중복 문자열 항목을 쿼리하는 방법
예 CONTACT 테이블 항목 : 나는 기록을 얻을 필요가
id (int)| name (string) | phone (string) ----------------------------------------- 1 | mike | 081239812345678 2 | jhon | 082222212345678 3 | rudy | 081237712345678 4 | lucy | 081237712345123 5 | lily | 081244412345678
이 "백합 마이크, jhon, 루디와"마지막 전화 번호 숫자 8 (중복) 동일하기 때문에,하지만 기록이 속하는 속하는
내 첫 번째 쿼리 :
내 현재의 방법처럼이 쿼리를 사용하는 것입니다 (다른 기록이 비슷한 8 자리로 끝나는 번호가 없기 때문에) 루시는 무시됩니다에 나는 "myRight"의 값을 얻을 수 있습니다이 쿼리에서
"select right(phoner, 8) as myRight , count(*) as totdup from contact group by myRight having totdup > 1";는 나는 세부 사항을 얻기 위해 두 번째 쿼리를 실행합니다
"select * from contact where phone like '%$myRight'";
내 질문은 내가 300K 기록을 가지고이 걸리기 때문에 과정을 빠르게하는 방법입니다 약 20 분이 쿼리에 대한, 또한 쿼리를 사용하여 쿼리를 단순화하기 위해 찾고 있어요하지만 난 어떻게 해야할지 모르겠다, 나는 지금이 문제에 대한 투쟁을 몇 일 동안, 당신의 도움은 매우 감사하게 될 것입니다.