반응형
728x90
반응형
trim 사용하는 방법
<update id="updateExam" parameterType="VO">
UPDATE examTable
<trim prefix="SET" suffixOverrides=",">
<if test="exam1 != null">exam1 = #{exam1},</if>
<if test="exam2 != null">exam2 = #{exam2},</if>
</trim>
WHERE
idx = #{idx}
</update>
mybatis에서 update 쿼리문을 사용하다보면 위처럼 조건문만 사용하게 되는 경우가 생긴다. 그때 콤마(,) 를 어떻게 사용해야 sql문 error가 발생하지 않을지 고민하게 된다. 그럴때는 위 예제처럼 trim 이라는것을 사용하자.
+댓글내용 참고 (gyeongtae kim님)
- prifix = tirm 안에있는 모든 문자열의 앞에 붙여줄 문자열을 입력하는 곳
- suffixOverrides = trim 안에있는 모든 문자열의 조건문을 판별해서 입력된 문자열의 맨 끝에서부터 찾아서 지워줄 문자열을 입력하는 곳
Oracle 에서 NVL 함수 사용하는 방법
오라클에서 NVL 함수를 사용해서 처리해보자.
<update id="updateExam" parameterType="VO">
UPDATE examTable
exam1 = NVL(#{exam1}, exam1)
exam2 = NVL(#{exam2}, exam2)
WHERE
idx = #{idx}
</update>
NVL 함수를 사용하면 된다. NVL 함수를 사용하여 파라미터 값이 null인 경우 기존 컬럼 값으로 UPDATE 하므로 동적 쿼리가 아닌 오라클 함수를 사용하여 처리할 수 있다.
NVL 함수 포스팅 바로가기
https://devfunny.tistory.com/16
MySql에서 IFNULL 함수 사용하는 방법
<update id="updateExam" parameterType="VO">
UPDATE examTable
exam1 = IFNULL(#{exam1}, exam1)
exam2 = IFNULL(#{exam2}, exam2)
WHERE
idx = #{idx}
</update>
Mysql 에서는 오라클의 NVL 함수와 동일하게 수행되는 IFNULL 함수가 있다.
IFNULL 함수 포스팅 바로가기
https://devfunny.tistory.com/193
반응형
'Coding > SQL Query' 카테고리의 다른 글
MYSQL IFNULL 함수 (0) | 2018.10.04 |
---|---|
case~when~then 문 사용해보기 (0) | 2018.10.04 |
mybatis 쿼리문 실행결과 컬럼(열) 순서를 고정시키기 (1) | 2018.10.04 |
Mapper의 쿼리가 실행되었을때 실행된 행의 개수를 가져오고싶으면? (0) | 2018.05.11 |
NULL인 경우 값 변환 (NVL, NULLIF, COALESCE 함수) (0) | 2018.05.11 |