집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 대소문자를 구분하지 않는 와일드카드 검색을 어떻게 수행할 수 있습니까?
<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 함수를 사용하는 검색의 특성입니다. 이 접근 방식은 비교 전에 모든 값을 소문자로 변환하므로 매우 큰 테이블의 성능에 영향을 미칠 수 있습니다. 대소문자를 구분하지 않는 대체 비교 방법을 제공합니다.
대소문자를 구분하지 않는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!