반응형

@notepad_jj2

츄르사려고 코딩하는집사입니다.


[SQL] 대소문자 구분 없이 검색하는 방법 LOWER, UPPER

 

DB에서 검색을 할 때, 영어로 된 데이터를 찾는 것은 한글로 찾는 것보다 조금 까다롭습니다.

영어는 소문자와 대문자를 구분하지만, 한글은 대문자와 소문자를 구분하지 않기 때문에 영어로 된 데이터를 찾을 때는 대소문자를 구분하여 검색해야 합니다.

 

이 대소문자를 구분하지 않고 검색을 하는 방법은 데이터를 대문자(UPPER) 또는 소문자(LOWER)로 변환한 다음에, 검색하는 입력값(WORD)를 대문자(UPPER) 또는 소문자(LOWER)로 변환하여 WHERE 절에 입력하면 됩니다.

 

1. 소문자 변환 LOWER

SELECT NAME
  FROM STUDENT
 WHERE LOWER(NAME) = LOWER(WORD)

 

2. 대문자 변환 UPPER

SELECT NAME
  FROM STUDENT
 WHERE UPPER(NAME) = UPPER(WORD)

 

이 외에도, 대문자와 소문자를 구분하지 않고 찾는 데이터에 포함하는 알파벳이 있으면 출력해주는 방법으로도 웹에서 검색 조건에 맞게 할 수 있습니다.

 

예를 들어, STUDENT라는 테이블에서 Jason이라는 이름을 검색하려고 할 때, 아래의 쿼리를 사용하면 됩니다.

 

1. REGEXP_LIKE와 LOWER 사용

SELECT NAME
  FROM STUDENT
 WHERE REGEXP_LIKE(LOWER(NAME), LOWER(#NAME#))

 

2. REGEXP_LIKE와 UPPER 사용

SELECT NAME
  FROM STUDENT
 WHERE REGEXP_LIKE(UPPER(NAME), UPPER(#NAME#))
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기