MyBatis(마이바티스) MySql 메모장

LikeChoonsik's·2023년 1월 25일
0

Mysql

목록 보기
21/21
post-thumbnail
post-custom-banner

if foreach

<if test='예시 != null'>
  조건(ex where COUPON = #{COUPON}
</if>
<if test='NAME != null'>
  AND NAME LIKE CONCAT('%', #{NAME}, '%')
</if>
배열의 경우 foreach로 조합
<if test='COUPON_STATUS != null'>
   AND COUPON.COUPON_STATUS IN
   <foreach item="item" index="index" collection="COUPON_STATUS" open="(" separator="," close=")">
   #{item}
   </foreach>
</if>

예약어

cdata

<>(부등호),&(앤드),||(오아) 등을 닫는 부등호가 아니라 문자열로 처리하라는 뜻
<![CDATA[ 쿼리내용(부등호 등) ]]>
예) IF( 11 <![CDATA[ > ]]> 10, '크다', '작다')

컬럼명이 "DESC"인 삽입 쿼리에러

INSERT INTO EVENT_TABLE (EVENT_ID, EVENT_TIME, TITLE, `DESC`)

위 같이 DESC를 백틱(`)으로 감싸줘야함

#{}과 ${} 구분하기

select * from people where #{value} = "홍길동"

위와 같은 내용에서 value = "name"라면 위의 경우는 ~"name" = "홍길동"으로 되기에 오류가 난다. 이럴 땐 ${value}를 이용하면
~name = "홍길동"으로 출력가능

HAVING

  • Having절은 WHERE절과 비슷하지만 그룹 전체 즉, 그룹을 나타내는 결과 집합의 행에만 적용된다
    반면 WHERE절은 개별 행에 적용이 된다.
  • having절은 그룹을 필터링하는 데 사용된다.
  • where절을 행을 필터링 하는데 사용된다.
예시)
select concat(a,b) AS TEST
from DB
 <if test='TEST != null'>
HAVING  TEST LIKE CONCAT('%', #{TEST}, '%')
</if>
profile
춘식이는 너무 귀엽습니다.
post-custom-banner

0개의 댓글