DB

[SQL] 배열내의 특정 값을 삭제하는 쿼리문

mizzhin 2015. 7. 29. 13:10

저는 디비의 컬럼으로 배열을 잘 안씁니다.

하지만 쓸수밖에 없을때가 있는데 배열로 된 것은 일반 쿼리문 하고 좀 틀리게 삭제등을 해야합니다.

알면 간단하지만 모르면 정말 해매야하는 부분 입니다.


그럼 간단하게 배열로 된 컬럼내의 특정 값을 select 및 delete를 해보겠습니다.


ex) testtable 테이블의 int_array컬럼에서 3이포함되어있는 열을 select합니다.

SELECT * from testtable WHERE 3 = ANY(int_array);



ex) testtable이라는 테이블에 int_array 라는 배열컬럼내의 배열들중 3만 삭제합니다.


UPDATE testtable SET int_array =array_remove(int_array , 3 ) WHERE 3 = ANY(int_array);