안녕하세요.
기술적으로 아래와 같은 경우가 가능한지 문의 드립니다.
예로 TEST 라는 테이블의 구조는 아래와 같습니다.
TABLE : TEST
컬럼 COL1 (KEY) | 컬럼 COL2 (KEY) | 컬럼 COL3 | 컬럼 COL4 |
AB001 | A | TEST1 | JP |
AB001 | B | TEST2 | KR |
AB001 | C | TEST3 | US |
위 구조의 정보는 COL1, COL2가 Key로 설정되어있습니다.
제가 하고자 하는건 아래와 같이 COL1에 해당하는 정보를 조회하여
SELECT * FROM TEST WHERE COL1 = 'AB001';
두번째 Key 정보인 COL2에 맞는 타겟 대상을 한 쿼리로 UPDATE가 가능할까요..
혹시 가능하지 않을까 싶은마음에...문의 드립니다.
(요지는 COL1 정보에 해당하는 모든 정보를 한 쿼리로 UPDATE를 하고 싶습니다. 조건은
정확한 COL2에 해당하는 대상들 모두를...)
가능하다면 적용은 mybatis에 할 예정이구요..ㅜ.ㅜ
조언을 부탁 드립니다.
-- 1. 굳이 한방쿼리를 고집할 이유가 없어 보입니다. UPDATE t SET col3 = 'test1', col4 = 'jp' WHERE col1 = 'AB001' AND col2 = 'A'; UPDATE t SET col3 = 'test2', col4 = 'kr' WHERE col1 = 'AB001' AND col2 = 'B'; UPDATE t SET col3 = 'test3', col4 = 'us' WHERE col1 = 'AB001' AND col2 = 'C'; -- 2. 굳이 한방쿼리를 원한다면? UPDATE t SET col3 = DECODE(col2, 'A', 'test1', 'B', 'test2', 'C', 'test3') , col4 = DECODE(col2, 'A', 'jp' , 'B', 'kr' , 'C', 'us' ) WHERE col1 = 'AB001' ;