SQL: INSTR, LIKE 또는 CONCAT에서 LIKE 조인을 수행하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-31 10:27:01
원래의
556명이 탐색했습니다.

How to Perform a LIKE Join in SQL: INSTR, LIKE, or CONCAT?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!