본문 바로가기

IT/SQL

[SQL update] 다중 조건을 이용한 update

안녕하세요 남갯입니다


오늘은 다중 조건을 가진 update를 하는 방법을 알려드리려고 합니다.


1.  bs_rec => 업데이트할 테이블명


2.  as bs => 이름을 bs로 닉네임 붙인다.


3.  type = c.type => 수정하고 싶은 값의 칼럼과 밑에서 c로 설정한 이름명 을 가져와 값을 넣는다는뜻


4.  (c.container_id = bs.container_id) AND (c.date = bs.date) => 위에서 설정한 c로 설정한 이름명이다.


나는 c(container_id,date,type) 로 설정했으니 date와 container_id이다




만약 mybatis를 사용한다면



<foreach collection="list" item="item" separator=",">

(#{item.containerId},cast(#{item.date} as timestamp) , item.type)

</foreach>


이렇게 원하는 리스트를 넣어주면 되고,


SQL문을 이용할땐

('a',date타입,'test')  ,

('b',date타입,'test2')



아래와 같은 구문을 이용하면된다.



update bs_rec as bs set

type = c.type

from (values

('a',date타입,'test')  ,

('b',date타입,'test2')

) as c(container_id,date,type)

where

(c.container_id = bs.container_id)

AND

(c.date = bs.date)



'IT > SQL' 카테고리의 다른 글

[postgresql] SQL 테이블 칼럼 추가,삭제하기  (0) 2018.10.17