Programming/PHP

MySQL UPDATE문 CASE(조건문) 사용

Cirrus.Kim 2015. 2. 8. 00:20

코드레벨에서의 비교 쿼리는 비효율적인 경우가 많음.


가령 쿼리가 두배로 일어난다던지, 연산이 중첩되는 경우가 있는데,

 

MySQL에서는 MS-SQL의 Procedure은 없지만! 


쿼리문에서 조건절을 넣을 수가 있다! 



UPDATE  abbonamento
SET     punti = CASE WHEN tipo = 'punti' THEN punti - 1 ELSE punti END,
        bonus = CASE WHEN tipo <> 'punti' THEN bonus - 1 ELSE bonus END
WHERE   id = 17



UPDATE ci_que

            SET 

                d_suspend = CASE WHEN errorCnt > 2 THEN d_suspend = 1 ELSE d_suspend =2 END,

                errorCnt = errorCnt + 1,

                d_wait = 0,

                d_process= 0,

                d_complete = 0,

                startTime = -1,

                endTime = -1

            WHERE hash='$hash'