여러 update 쿼리를 하나로 만들면 어떻게 하면 해주면 좋을까요 채택완료

1년 전 조회 45,678

여러 update 쿼리를 나눠서 하지 않고 한번에 하려면 어떻게 해주는게 좋을까요?

조언 좀 부탁드립니다~^^

 

Copy
update AAA set totalprice = '1000' 
where (1)
    and amount = 1 
    and shoe = 0 
    and registdate > '2023-09-01 00:00:00'


update AAA set totalprice = '1500' 
where (1)
    and amount = 1 
    and shoe = 1 
    and registdate > '2023-09-01 00:00:00'


update AAA set totalprice = '2000' 
where (1)
    and amount = 2 
    and salad_amount = 0 
    and registdate > '2023-09-01 00:00:00'


update AAA set totalprice = '2500' 
where (1)
    and amount = 2 
    and salad_amount = 1 
    and registdate > '2023-09-01 00:00:00'

답변 3개

채택된 답변
+20 포인트

UPDATE AAA
SET totalprice = 
    CASE 
        WHEN amount = 1 AND shoe = 0 THEN '1000'
        WHEN amount = 1 AND shoe = 1 THEN '1500'
        WHEN amount = 2 AND salad_amount = 0 THEN '2000'
        WHEN amount = 2 AND salad_amount = 1 THEN '2500'
        ELSE totalprice
    END
WHERE
    registdate > '2023-09-01 00:00:00';

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

내용상 업데이트 되어야 하는 항목이 달라서 한쿼리로 하실수 없을듯 합니다. ^^;;

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

조건과 값이 다 다른거라서 여러번 따로 하는게 맞으실거 같습니다. 그냥 한줄로 하고 싶으신거면 

update AAA set totalprice = '2000' 
where (1)
    and amount = 2 
    and salad_amount = 0 
    and registdate > '2023-09-01 00:00:00';

update AAA set totalprice = '2500' 
where (1)
    and amount = 2 
    and salad_amount = 1 
    and registdate > '2023-09-01 00:00:00';

식으로 쿼리문 끝나고 ;을 붙이시면 됩니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아 네 감사합니다. ^^

혹시 그러면 한 쿼리로 하려면 조건이 어떻게 되어야 한 쿼리로 가능할까요?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고