update 문 두개를 하나로 합칠려고 합니다. 0 3 1,385

by 지침 [2016.08.12 14:39:16]


첫번째 업데이트문
UPDATE 
    member
SET 
    state = '1'
    type = '1'
WHERE idx IN(1,2,3,4);

두번째 업데이트문
UPDATE 
    member
SET 
    state = '2'
    type = '2'
    value = '3'
WHERE idx IN(5,6,7,8);

이런식의  두가지 업데이트문이 있습니다. 

두번 실행하려니 조금 아쉬운느낌이 들어서 .. 방법이 있을지 ..궁금합니다.

 

by 신이만든짝퉁 [2016.08.12 15:00:32]
UPDATE
    member
SET
    state = case when idx in (1,2,3,4) then '1'
                 when idx in (5,6,7,8) then '2'
            end
    type = case when idx in (1,2,3,4) then '1'
                when idx in (5,6,7,8) then '2'
           end
    value = case when idx in (5,6,7,8) then '3' else value end
WHERE idx IN(1,2,3,4,5,6,7,8);
 

이렇게 해보세요~


by 지침 [2016.08.15 13:10:03]

감사합니다 ^^
 


by 탱 [2016.08.18 17:15:34]

질문이 있는데요~

VALUE 부분에서 첫번째 업데이트문에 대해서는 UPDATE를 수행하지 않는데

쿼리가 합쳐지면서 IN(1,2,3,4)인 경우 같은 값으로 UPDATE를 수행하게 하셨는데

이 경우에 불필요한 UPDATE가 수행되는거 같습니다. 혹시 저 부분을 없앨 수 있는 방법이 있을까요?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입