PostgreSQL array type column 다루기

postgresql DB의 특징 중 하나가 바로 배열형 컬럼을 다룰 수 있다는 점이다.

배열형 컬럼 만들기

CREATE TABLE article (

    id	     serial  PRIMARY KEY,

    title     varchar(20),     

    content      text,         

    tag    varchar(100)[]  -- 배열형 컬럼

)

배열형 컬럼에 데이터 추가하기

INSERT INTO article (title, content, tag) 

  VALUES('test article', 'test conetent', '{tag1, tag2}');

이러한 배열형 컬럼을 조건절로 하여 특정 데이터를 불러온다고 가정했을때

사용할 수 있는 함수가 any함수이다.

예를들어 상단과 같이 article이라는 테이블에 category라는 컬럼은 배열형 컬럼으로 선언되어있다

검색 조건이 특정 카테고리를 포함한 article리스트를 조회하고자 한다면

SELECT *
FROM article
WHERE 'tag1' = any(tag)
OR 'test' = any(tag)

해당 쿼리를 실행 시 결과값은 하단과 같다.

즉 any함수를 사용하면 배열형 컬럼에서 특정 value를 포함한 row결과값을 가져올수 있게 해준다.

좋은 웹페이지 즐겨찾기