안녕하세요 남갯입니다
오늘은 다중 조건을 가진 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 |
---|