여러 테이블의 데이터를 쿼리할 때 특정 기준에 따라 테이블을 조인해야 하는 경우가 많습니다. 일반적인 요구 사항 중 하나는 한 테이블의 열에 다른 테이블의 열과 정확히 또는 부분적으로 일치하는 값이 포함되어 있는 일치하는 행을 검색하는 것입니다. 이 시나리오는 JOIN 문과 함께 LIKE 연산자를 사용하여 해결됩니다.
<code class="sql">SELECT * FROM TABLE_A a JOIN TABLE_B b ON INSTR(b.column, a.column) > 0;</code>
INSTR 함수는 b.column의 값에 a의 값이 포함되어 있는지 확인합니다. 열 앞이나 뒤의 문자에 관계없이 열입니다.
<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이 포함되어 있으면 일치가 보장됩니다.
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!