테스트 사이트 - 개발 중인 베타 버전입니다

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

강력드라이브 1년 전 조회 45,192

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

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

 

</p>

<p>update AAA set totalprice = '1000' 

where (1)

    and amount = 1 

    and shoe = 0 

    and registdate > '2023-09-01 00:00:00'</p>

<p>

update AAA set totalprice = '1500' 

where (1)

    and amount = 1 

    and shoe = 1 

    and registdate > '2023-09-01 00:00:00'</p>

<p>

update AAA set totalprice = '2000' 

where (1)

    and amount = 2 

    and salad_amount = 0 

    and registdate > '2023-09-01 00:00:00'</p>

<p>

update AAA set totalprice = '2500' 

where (1)

    and amount = 2 

    and salad_amount = 1 

    and registdate > '2023-09-01 00:00:00'</p>

<p>

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

답변 3개

채택된 답변
+20 포인트
d
1년 전

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';

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

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

M
1년 전

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

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

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

1년 전

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

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개

강력드라이브
1년 전
아 네 감사합니다. ^^

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

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

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

로그인