Database/MySQL

[MySQL] 와일드카드

IT수정 2024. 9. 9. 16:27

와일드카드는 문자열에서 패턴을 검색할 때 쓰는 특수문자로, LIKE 연산자와 함께 사용된다.

 

LIKE의 기본 형식

SELECT [열] FROM [테이블] WHERE [열] LIKE [조건값]

 

LIKE와 %로 특정 문자열을 포함하는 문자열 검색하기

%의 사용 방법
A% : A로 시작하는 모든 문자열
%A : A로 끝나는 모든 문자열
%A% : A를 포함하는 모든 문자열

 

-- '김'으로 시작하는 문자열 검색
SELECT * FROM userTBL WHERE symbol LIKE '김%'

-- '민지'로 끝나는 문자열 검색
SELECT * FROM userTBL WHERE symbol LIKE '%민지'

-- 'A'를 포함하는 문자열 검색
SELECT * FROM userTBL WHERE symbol LIKE '%A%'

/*
특정 문자열을 제외하고 검색하려면
LIKE 앞에 NOT을 붙여주면 된다.
*/

 

특수 문자를 포함한 문자열 검색하기

WITH CTE (col_1) AS (
SELECT 'A%BC' UNION ALL
SELECT 'A_BC' UNION ALL
SELECT 'ABC'
)

-- A%BC만 검색: EXCAPE와 # 사용
SELECT * FROM CTE WHERE col_1 LIKE '%#%%' ESCAPE '#'

-- A%BC만 검색: EXCAPE와 ! 사용
SELECT * FROM CTE WHERE col_1 LIKE '%!%%' ESCAPE '!'

-- 데이터베이스 엔진이 SQL 명령을 수행할 때
SELECT * FROM CTE WHERE col_1 LIKE '%%%'

 

_로 특정 문자열을 포함하는 특정 길이의 문자열 검색하기

_의 사용 방법
A_ : A로 시작하면서 뒤의 글자는 무엇이든 상관없으며 전체 글자 수는 2개인 문자열
_A : A로 끝나면서 앞의 문자는 무엇이든 상관 없으며 전체 글자 수는 2개인 문자열
_A_ : 세글자중 가운데 글자만 A이며 앞뒤로는 무엇이든 상관없는 문자열

 

-- 문자열의 길이가 2인 symbol 검색: A로 시작
SELECT * FROM userTBL WHERE symbol LIKE 'A_'

 

_와 %를 조합해 문자열 검색하기

-- A_C로 시작하는 symbol 검색: 이후 문자열은 무엇이든 가능
SELECT * FROM userTBL WHERE symbol LIKE 'A_C%'

 

[]로 문자나 문자 범위를 지정해 문자열 검색하기

[]의 사용 방법
[A, B, C]% 또는 [A-C]%: 첫 글자가 A 또는 B 또는 C로 시작하는 모든 문자열 검색
%[A, B, C] 또는 %[A-C]: 마지막 글자가 A 또는 B 또는 C로 끝나는 모든 문자열 검색

 

-- 첫글자가 A이고 2번째 문자가 A 또는 B 또는 C인 symbol 검색: , 사용
SELECT * FROM userTBL WHERE symbol LIKE 'A[A, B, C]'

-- 첫글자가 A이고 2번째 문자가 A 또는 B 또는 C인 symbol 검색: - 사용
SELECT * FROM userTBL WHERE symbol LIKE 'A[A-C]'

-- 첫글자가 A이고 2번째 문자가 A 또는 B 또는 C가 아닌 symbol 검색
SELECT * FROM userTBL WHERE symbol LIKE 'A[^A, ^B, ^C]'

 

'Database > MySQL' 카테고리의 다른 글

[MySQL] 테이블 생성과 데이터 조작  (0) 2024.09.10
[MySQL] 데이터 그룹화  (0) 2024.09.09
[MySQL] ORDER BY 문  (0) 2024.09.09
[MySQL] WHERE 문  (0) 2024.09.09
[MySQL] SELECT 문  (0) 2024.09.09