>데이터 베이스 >MySQL 튜토리얼 >SQL에서 `LIKE`와 `IN` 연산자를 결합할 수 있습니까? 그렇지 않은 경우 대안은 무엇입니까?

SQL에서 `LIKE`와 `IN` 연산자를 결합할 수 있습니까? 그렇지 않은 경우 대안은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-21 13:22:14415검색

Can SQL Combine `LIKE` and `IN` Operators, and if not, What Are the Alternatives?

SQL에서 LIKEIN 결합: 직접 결합의 대안

SQL의 LIKE 연산자는 패턴 일치를 용이하게 하는 반면, IN는 값 집합에 속하는지 확인합니다. 직접 조합을 사용할 수는 없지만 여러 LIKE 조건을 처리하거나 LIKE을 일련의 값과 결합하는 효율적인 대안이 있습니다.

다양한 LIKE 조건의 도전

OR와 함께 여러 LIKE 문을 사용하면 여러 패턴에 대해 다루기 힘들고 비효율적일 수 있습니다.

<code class="language-sql">WHERE something LIKE 'bla%'
OR something LIKE '%foo%'
OR something LIKE 'batz%'</code>

전체 텍스트 검색: 강력한 솔루션

여러 LIKE 조건이 필요하거나 LIKE과 값 집합의 조합이 필요한 시나리오의 경우 FTS(전체 텍스트 검색)가 탁월한 접근 방식을 제공합니다. Oracle과 SQL Server 모두 FTS 기능을 제공합니다.

오라클의 FTS 구현

Oracle은 CONTAINS 연산자와 함께 OR 키워드를 사용하여 원하는 효과를 얻습니다.

<code class="language-sql">WHERE CONTAINS(t.something, 'bla OR foo OR batz', 1) > 0</code>

SQL Server의 FTS 구현

SQL Server도 CONTAINS을 사용하지만 패턴 일치 구문이 약간 다릅니다.

<code class="language-sql">WHERE CONTAINS(t.something, '"bla*" OR "foo*" OR "batz*"')</code>

중요 사항: 최적의 FTS 성능을 위해서는 관련 열(이 예에서는 t.something)이 전체 텍스트 인덱스를 사용하여 올바르게 인덱싱되었는지 확인하세요.

추가 자료

위 내용은 SQL에서 `LIKE`와 `IN` 연산자를 결합할 수 있습니까? 그렇지 않은 경우 대안은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.