MyBatis
MyBatis 마이바티스 MySQL UPDATE 누적 합계 (INT 자료형)
JM_H
2023. 2. 11. 16:08

테이블에 (INT) 자료형의 컬럼이 있고 해당 컬럼 값을 누적 합산해야 하는 기능을 만든다고 할때
저장되어 있는 값을 우선 (SELECT) 조회한 뒤, 합산 후 (UPDATE)수정 할 수도 있지만
(SELECT) 조회할 필요없이 (UPDATE) 조회와 수정을 한번에 할 수도 있음
UPDATE
'테이블명'
SET
'컬럼명' = IFNULL('컬럼명',0) + #{'합산할 값이 담긴 파라미터명'}
/* 컬럼값이 NULL일 경우 연산을 할 수 없으니 INFULL을 이용해 NULL일 경우 0으로 대체하도록 설정 */
WHERE
'컬럼명' = #{조건값}
/* 누적합산 하기 위해 '+' 를 하였는데 원하는 형식에 맞춰 '-' 빼거나, '*' 곱하거나 '/' 나누기도 가능 */
/* 나누기를 할때 주의할 점은 0으로 나눌 수 없다는 것. 0으로 나누려고 하면 Error Code: 1365. Division by 0
과 같은 오류가 발생함 */