부분 일치를 위해 LIKE 조건을 사용하여 테이블을 조인하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-31 17:59:00
원래의
1038명이 탐색했습니다.

How to Join Tables with a LIKE Condition for Partial Matches?

LIKE 조건으로 테이블 조인

여러 테이블의 데이터를 쿼리할 때 특정 기준에 따라 테이블을 조인해야 하는 경우가 많습니다. 일반적인 요구 사항 중 하나는 한 테이블의 열에 다른 테이블의 열과 정확히 또는 부분적으로 일치하는 값이 포함되어 있는 일치하는 행을 검색하는 것입니다. 이 시나리오는 JOIN 문과 함께 LIKE 연산자를 사용하여 해결됩니다.

INSTR 사용

<code class="sql">SELECT *
FROM TABLE_A a
JOIN TABLE_B b ON INSTR(b.column, a.column) > 0;</code>
로그인 후 복사

INSTR 함수는 b.column의 값에 a의 값이 포함되어 있는지 확인합니다. 열 앞이나 뒤의 문자에 관계없이 열입니다.

LIKE 사용

<code class="sql">SELECT *
FROM TABLE_A a
JOIN TABLE_B b ON b.column LIKE '%'+ a.column +'%'</code>
로그인 후 복사

LIKE 연산자는 패턴 일치를 수행하여 와일드카드(*)로 앞이나 뒤의 문자를 원하는 수만큼 나타낼 수 있습니다. . 이 경우 패턴은 %a.column%이며, b.column에 해당 값 내 어디에든 a.column이 포함되어 있으면 일치가 보장됩니다.

CONCAT과 함께 LIKE 사용

<code class="sql">SELECT *
FROM TABLE_A a
JOIN TABLE_B b ON b.column LIKE CONCAT('%', a.column ,'%')</code>
로그인 후 복사

다음과 유사합니다. 이전 예에서 이 기술은 CONCAT 함수를 사용하여 패턴을 동적으로 구축합니다. 이전 LIKE 쿼리와 동일한 결과를 얻습니다.

대소문자 구분

대소문자를 구분하지 않고 비교하려면 조인을 수행하기 전에 열 값을 대문자로 변환하는 것이 좋습니다.

<code class="sql">SELECT *
FROM (SELECT UPPER(a.column) AS upper_a
       FROM TABLE_A) a
JOIN (SELECT UPPER(b.column) AS upper_b
       FROM TABLE_B) b ON INSTR(upper_b, upper_a) > 0;</code>
로그인 후 복사

효율성 고려 사항

LIKE 조건을 사용하여 테이블을 JOINing하는 가장 효율적인 방법은 특정 데이터베이스와 쿼리 최적화 프로그램의 동작에 따라 다릅니다. 가장 최적의 실행 경로를 결정하려면 EXPLAIN PLAN 기능을 사용하는 것이 좋습니다.

위 내용은 부분 일치를 위해 LIKE 조건을 사용하여 테이블을 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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