PostgreSQL LIKE 및 ILIKE연산자를 사용하여 패턴 일치를 사용하여 데이터를 쿼리 하는 방법

 

- LIKE 연산자를 사용해 비교하려는 문자열과 일치 시킬 수 있습니다.

- 백분율(%)는 0개 이상의 문자 시퀀스와 일치합니다.

- 밑줄(_)는 단일 문자와 일치합니다.

- LIKE 또는 NOT LIKE를 통해 일치 항목을 찾습니다.

value LIKE pattern

value NOT LIKE pattern

- 패턴에 와일드 카드가 문자가 포함되지 않은 경우 LIKE 연산자는 등호(=) 연산자 처럼 작동합니다.

 


1) PostgreSQL LIKE 연산자

SELECT
	'foo' LIKE 'foo', -- true
	'foo' LIKE 'f%', -- true
	'foo' LIKE '_o_', -- true
	'bar' LIKE 'b_'; -- false

- 첫 번째 표현식, foo 패턴은 와일드카드 문자가 포함되어 있지 않아 LIKE 연산자가 등호 연산자 처럼 작동했습니다.

- 두 번째 표현식, f로 시작하고 그 뒤에 임의의 문자가 오는 모든 문자열과 일치하기 때문에 true가 됩니다.

- 세 번째 표현식, _o_로 단일 문자로 시작하고 그 뒤에 문자가 오고 단일 문자로 끝나는 모든 문자열과 일치하기 때문에 true가 됩니다.

- 마지막 표현식, b로 시작하고 단일 문자가 오는 모든 문자열과 일치하지 않기 때문에 false가 됩니다.

 

-- 이름에 er이 포함된 고객을 찾는 쿼리
SELECT
	first_name,
        last_name
FROM
	customer
WHERE
	first_name LIKE '%er%'
ORDER BY 
        first_name;

 

2) PostgreSQL LIKE 연산자 %와 _를 사용하는 경우

SELECT
	first_name,
	last_name
FROM
	customer
WHERE
	first_name LIKE '_her%'
ORDER BY 
        first_name;

 

3) PostgreSQL NOT LIKE 연산자

-- NOT LIK를 사용하여 Jen이 포함되지 않는 고객을 찾는 쿼리
SELECT
	first_name,
	last_name
FROM
	customer
WHERE
	first_name NOT LIKE 'Jen%'
ORDER BY 
        first_name

 

4) PostgreSQL LIKE연산자에서 대소문자 구별없이 찾는 연산자

-- 대소문자를 구분하지 않고 값을 찾는 쿼리
SELECT
	first_name,
	last_name
FROM
	customer
WHERE
	first_name ILIKE 'BAR%';

 


OperatorEquivalent

~~ LIKE
~~* ILIKE
!~~ NOT LIKE
!~~* NOT ILIKE
반응형

'SW ENGINEERING > Postgres' 카테고리의 다른 글

[PostgreSQL] BASIC - JOIN  (0) 2021.09.02
[PostgreSQL] BASIC - IS NULL  (0) 2021.09.02
[PostgreSQL] BASIC - BETWEEN  (0) 2021.09.02
[PostgreSQL] BASIC - IN  (0) 2021.09.01
[PostgreSQL] BASIC - FETCH  (0) 2021.09.01
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기