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 |
최근댓글