SQL에서 LIKE를 사용하여 테이블 조인
조인을 수행할 때 일치 조건에 LIKE를 사용하여 부분 문자열 일치가 필요한 시나리오가 발생할 수 있습니다. 연산자. 여기에는 한 테이블의 열을 다른 테이블의 열과 일치시키는 작업이 포함되며, 해당 값의 앞이나 뒤에 문자가 있을 수 있습니다.
이 문제를 해결하려면 다음과 같은 여러 접근 방식을 사용할 수 있습니다.
INSTR 사용:
이 방법은 INSTR 함수를 활용하여 문자열 내에 하위 문자열이 있는지 확인합니다.
<code class="sql">SELECT * FROM TABLE a JOIN TABLE b ON INSTR(b.column, a.column) > 0</code>
LIKE 사용:
또는 와일드카드 %와 함께 LIKE 연산자를 사용하여 원하는 수의 문자와 일치시킬 수 있습니다.
<code class="sql">SELECT * FROM TABLE a JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'</code>
CONCAT과 함께 LIKE 사용:
또 다른 기술에는 CONCAT 함수를 사용하여 % 와일드카드를 열 값과 연결하는 것이 포함됩니다.
<code class="sql">SELECT * FROM TABLE a JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')</code>
대소문자를 구분하지 않는 일치:
모든 경우에 열을 변환하는 것이 좋습니다. 대소문자를 구분하지 않고 일치하는지 확인하기 위해 비교하기 전에 값을 대문자로 변환합니다.
<code class="sql">SELECT * FROM (SELECT UPPER(a.column) 'ua' FROM TABLE a) a JOIN (SELECT UPPER(b.column) 'ub' FROM TABLE b) b ON INSTR(b.ub, a.ua) > 0</code>
방법 선택은 효율성 및 데이터베이스 호환성과 같은 요소에 따라 달라집니다. 최적의 접근 방식을 결정하려면 EXPLAIN 계획 출력을 참조하세요. JOIN 구문은 WHERE 절과 동일합니다.
위 내용은 LIKE를 사용하여 SQL 조인에서 부분 문자열 일치를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!