SQL에서 LIKE 조인 수행
조인을 사용하여 두 테이블 간의 값을 일치시킬 때 한 테이블의 열이 일치하는 경우가 있을 수 있습니다. 다른 테이블의 열 부분과 일치해야 합니다. 이는 조인 조건에서 LIKE 연산자를 사용하여 수행되는 경우가 많습니다.
테이블 A와 테이블 B라는 두 개의 테이블이 있고 테이블 A의 A열이 "like"인 조건으로 조인하려고 한다고 가정해 보겠습니다. 이는 테이블 B의 컬럼 B입니다. 이는 일치 항목에 컬럼 B의 전체 값이나 그 앞이나 뒤의 문자가 포함될 수 있음을 의미합니다.
INSTR 사용:
한 가지 방법은 다음을 사용하는 것입니다. 조인 조건의 INSTR() 함수:
<code class="sql">SELECT * FROM TABLE A JOIN TABLE B ON INSTR(B.columnB, A.columnA) > 0</code>
LIKE 사용:
또 다른 옵션은 와일드카드와 함께 LIKE 연산자를 사용하는 것입니다:
<code class="sql">SELECT * FROM TABLE A JOIN TABLE B ON B.columnB LIKE '%'+ A.columnA +'%'</code>
CONCAT과 함께 LIKE 사용:
CONCAT() 함수를 사용하여 와일드카드 기호를 열 값과 연결할 수도 있습니다:
<code class="sql">SELECT * FROM TABLE A JOIN TABLE B ON B.columnB LIKE CONCAT('%', A.columnA ,'%')</code>
대문자 변환:
대소문자를 구분하지 않는 일치를 보장하려면 비교하기 전에 열 값을 대문자로 변환하는 것이 좋습니다.
<code class="sql">SELECT * FROM (SELECT UPPER(A.columnA) 'ua' FROM TABLE A) A JOIN (SELECT UPPER(B.columnB) 'ub' FROM TABLE B) B ON INSTR(B.ub, A.ua) > 0</code>
효율성 고려 사항:
이러한 방법의 효율성은 특정 데이터베이스 및 테이블 구조에 따라 달라질 수 있습니다. 가장 최적의 접근 방식을 결정하려면 EXPLAIN 계획 출력을 확인하는 것이 좋습니다.
ANSI와 비ANSI JOIN 비교:
ANSI JOIN은 표준화된 구문을 따르는 반면, 비ANSI JOIN은 표준 구문을 따릅니다. ANSI JOIN은 보다 전통적인 구문을 사용합니다. 이 경우 JOIN 절은 ANSI가 아닌 JOIN의 WHERE 절과 동일합니다.
<code class="sql">SELECT * FROM TABLE A, TABLE B WHERE INSTR(B.columnB, A.columnA) > 0</code>
ANSI JOIN을 사용하면 WHERE 절의 필터 조건에서 조인 조건을 분리할 수 있는 이점이 있습니다.
위 내용은 SQL: INSTR, LIKE 또는 CONCAT에서 LIKE 조인을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!