RDBS/MYSQL

[MySQL]Like문법 - 특정 문자열 검색하기

MoonSta 2023. 2. 13. 09:11

 MYSQL에서 데이터를 조회할 경우 어떠한 칼럼의 특정 문자열이 포함된 데이터만 추출하는 경우가 있습니다. 이러한 경우에 사용하는 것이 바로 LIKE연산자입니다. LIKE  연산자를 사용할 때는 MYSQL이 제공해 주는 5가지 와일드카드를 이용합니다.

 


 

Like문은 어떤 구문인가?

  • % : 0개 이상의 문자를 나타냄
  • _ :  단일 문자를 나타냄
  • [] : 대괄호 내의 모든 단일 문자를 나타냄
  • ^ : 대괄호에 없는 문자를 나타냄
  • - :  문자의 범위를 나타냄

 

 MySQL의 LIKE문은 위와 같은 와일드카드를 사용하여 특정 문자열을 포함하고 있는지 확인합니다. 아래 예제를 보며 다시 설명하도록 하겠습니다.

 

NUM NUM_NAME NUM_AGE
1 문AB 25
2 차문C 23
3 김DE 21
4 박FG 31
5 최HI 29

 

위와 같은 회원의 정보를 가지고 있는 테이블이 있습니다. 와일드카드를 사용하여 Like문의 예제를 알아보도록 하겠습니다.


 

MEMBER_INFO 테이블 - 기본 예제

NUM NUM_NAME NUM_AGE
1 문AB 25
2 차문C 23
3 김DE 21
4 박FG 31
5 최HI 29

 

위와 같은 회원의 정보를 가지고 있는 테이블이 있습니다. 와일드카드를 사용하여 데이터를 조회해 보도록 하겠습니다.

 

 


 

회원의 이름 중 첫 글자가 "문"인 회원의 데이터 조회

SELECT * FROM MEMBER_INFO WHERE MEM_NAME LIKE '문%';
NUM MEM_NAME MEM_AGE
1 문AB 25

 

 


 

 

문자열의 중간에 "D"가 들어간 데이터 조회

SELECT * FROM MEMBER_INFO WHERE MEM_NAME LIKE '%D%'
NUM MEM_NAME MEM_AGE
3 김DE 21

 

 


 

 

회원 테이블에서 첫 번째 글자는 '박' 두, 세 번째 글자는 필수로 갖고 있는 데이터 조회

SELECT * FROM MEMBER_INFO WHERE MEM_NAME LIKE '박__'
NUM MEM_NAME MEM_AGE
4 박FG 31

 


 

 

첫 번째 글자는 '박' 세 번째 글자는 'G' 두 번째 글자는 "D" 또는 "L인 데이터 조회

SELECT * FROM MEMBER_INFO WHERE MEM_NAME LIKE '박[DF]G'
NUM MEM_NAME MEM_AGE
4 박FG 31

 

 


 

 

첫 번째 글자는 '최' 마지막 글자는 'I' 두 번째 글자는 "A"와 B가 아닌 데이터를 조회

SELECT * FROM MEMBER_INFO WHERE MEM_NAME LIKE '최[^AB]I
NUM MEM_NAME MEM_AGE
5 최HI 29

 

 


 

 

첫 번째 글자는 '문' 마지막 글자는 'C' 두 번째 글자는 'B', 'D' 사이에 포함된 데이터 조회

SELECT * FROM MEMBER_INFO WHERE MEM_NAME LIKE '문[B-D]C'

 

NUM MEM_NAME MEM_AGE
1 문AB 25