>데이터 베이스 >MySQL 튜토리얼 >SQL에서 대소문자를 구분하지 않는 와일드카드 검색을 어떻게 수행할 수 있습니까?

SQL에서 대소문자를 구분하지 않는 와일드카드 검색을 어떻게 수행할 수 있습니까?

DDD
DDD원래의
2025-01-17 13:42:09895검색
<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |
| Oak Tree         |
</code>

쿼리SELECT * FROM trees WHERE LOWER(trees.title) LIKE '%elm%'는 다음 행을 반환합니다.

<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |</code>

이것은 LOWER 함수를 사용하는 검색의 특성입니다. 이 접근 방식은 비교 전에 모든 값을 소문자로 변환하므로 매우 큰 테이블의 성능에 영향을 미칠 수 있습니다. 대소문자를 구분하지 않는 대체 비교 방법을 제공합니다.

How Can I Perform Case-Insensitive Wildcard Searches in SQL?

대소문자를 구분하지 않는 SQL 와일드카드 검색

LIKE 연산자를 사용하여 SQL에서 와일드카드 검색을 수행할 때 대소문자 구분이 어려울 수 있습니다. 예를 들어 SELECT * FROM trees WHERE trees.title LIKE '%elm%' 쿼리는 제목 열에 정확한 문자열 "elm"이 포함된 경우에만 결과를 반환합니다.

해결책: LOWER 함수 사용

MySQL은 LOWER 함수를 사용하여 이 문제에 대한 솔루션을 제공합니다. LOWER 함수에 열을 포함시키면 검색 시 대소문자를 구분하지 않게 됩니다. 방법은 다음과 같습니다.

<code class="language-sql">SELECT * FROM trees WHERE LOWER(trees.title) LIKE '%elm%'</code>

이 쿼리에서 LOWER 함수는 LIKE 검색을 수행하기 전에 제목 열의 내용을 소문자로 변환합니다. 따라서 쿼리는 제목의 소문자 표현에 "elm" 문자열이 포함된 모든 행을 반환합니다.

다음 행을 포함하는 트리라는 가상의 테이블을 생각해 보세요.

<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |
| Oak Tree         |</code>

쿼리SELECT * FROM trees WHERE LOWER(trees.title) LIKE '%elm%'는 다음 행을 반환합니다.

<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |</code>

LOWER 함수를 사용하여 대소문자를 구분하지 않는 검색 기능을 보여줍니다. 이 방법은 비교하기 전에 모든 값을 소문자로 변환하므로 대규모 테이블의 성능에 영향을 미칠 수 있습니다. 다른 데이터베이스 시스템에서는 대소문자를 구분하지 않는 대체 비교 방법을 제공할 수도 있습니다.

<code></code>

위 내용은 SQL에서 대소문자를 구분하지 않는 와일드카드 검색을 어떻게 수행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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