English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PostgreSQL LIKE 절

PostgreSQL 데이터베이스에서 특정 문자를 포함한 데이터를 가져오려면 다음과 같이 사용할 수 있습니다: LIKE

LIKE 문에서 일반적으로 패턴과 함께 사용되며, 패턴은 어떤 문자든지 나타냅니다. PostgreSQL에서는 다음과 같은 두 가지 패턴이 있습니다:

  • 백분위 %

  • 밑줄 _

위 두 가지 패턴을 사용하지 않으면 LIKE 문과 등호 =이 얻는 결과는 같습니다.

문법

다음은 LIKE 문에서 밑줄을 사용한 예제: % 밑줄과 _ 데이터베이스에서 데이터를 가져오는 일반 문법:

SELECT FROM table_name WHERE column LIKE 'XXXX%';
또는
SELECT FROM table_name WHERE column LIKE '%XXXX%';
또는
SELECT FROM table_name WHERE column LIKE 'XXXX_';
또는
SELECT FROM table_name WHERE column LIKE '_XXXX';
또는
SELECT FROM table_name WHERE column LIKE '_XXXX_';

WHERE 절에서 어떤 조건을 지정할 수 있습니다。

AND나 OR를 사용하여 하나 이상의 조건을 지정할 수 있습니다。

XXXX 또는 어떤 숫자나 문자가 될 수 있습니다。

온라인 예제

LIKE 문에서 %와 _의 일부 차이를 보여주는 예제:

예제설명
WHERE SALARY::text LIKE '200%'SALARY 필드에 포함된 200 시작하는 데이터를 찾습니다。
WHERE SALARY::text LIKE '%200%'SALARY 필드에 포함된 200 문자 데이터。
WHERE SALARY::text LIKE '_00%'SALARY 필드에서 두 번째와 세 번째 위치에 00이 있는 데이터를 찾습니다。
WHERE SALARY::text LIKE '2  %%'SALARY 필드에 포함된 2 시작하는 문자의 길이가 3 의 데이터。
WHERE SALARY::text LIKE '%2'SALARY 필드에 포함된 2 끝에 있는 데이터
WHERE SALARY::text LIKE '_2%3'SALARY 필드에 2 두 번째 위치에 있으며 3 끝에 있는 데이터
WHERE SALARY::text LIKE '2___3'SALARY 필드에 포함된 2 시작하는3 끝에 있으며 5 자릿수 데이터

PostgreSQL에서 LIKE 절은 문자에만 사용할 수 있으며, 따라서 위의 예제에서는 정수 데이터형을 문자 데이터형으로 변환해야 합니다.

COMPANY 테이블 생성(COMPANY SQL 파일 다운로드 ),데이터 내용은 다음과 같습니다:

w3codeboxdb# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

아래 예제에서 AGE가 2 시작하는 데이터:

w3codeboxdb=# SELECT * FROM COMPANY WHERE AGE::text LIKE '2%';

다음과 같은 결과를 얻습니다:

id | name  | age | address     | salary
----+-------+-----+-------------+--------
  2 | Allen |  25 | Texas       |  15000
  3 | Teddy |  23 | Norway      |  20000
  4 | Mark  |  25 | Rich-Mond   |  65000
  5 | David |  27 | Texas       |  85000
  6 | Kim   |  22 | South-Hall  |  45000
  7 | James |  24 | Houston     |  10000
  8 | Paul  |  24 | Houston     |  20000
(7 rows)

아래 예제에서 address 필드에 포함된 - 문자 데이터:

w3codeboxdb=# SELECT * FROM COMPANY WHERE ADDRESS  LIKE '%-%';

결과를 다음과 같이 얻습니다:

id | name | age |                      address              | salary
----+------+-----+-------------------------------------------+--------
  4 | Mark |  25 | Rich-Mond                               |  65000
  6 | Kim  |  22 | South-Hall                                |  45000
(2 rows)