TIL

230310 [SQL, MyBatis] (IN 연산자 / 동적 쿼리 foreach문)

하차모 2023. 3. 10. 17:26

1. SQL

1.1. IN 연산자

  WHERE 절 내에서 특정값 여러 개를 조건으로 제시하는 연산자이다.

SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 IN (값1, 값2, 값3...)
--부서 번호가 10번이거나 30번인 사원의 사번과 사원명 조회
SELECT EMPNO
	, ENAME
FROM EMP
WHERE DEPTNO IN (10, 30)

 

2. MyBatis

2.1. 동적 쿼리 for-each문

  for-each문 지원 태그

    collection : 전달받은 인자값

    item : 인자값을 다른 이름으로 재정의

    separator : 반복문이 두 번 이상 실행될 때 사이에 들어가는 구분자

    open : 반복문이 시작되기 전에 삽입할 문자열

    close : 반복문이 끝난 후 삽입할 문자열

<foreach collection="" item="" separator="" open="" close="">
	<!-- 반복할 쿼리 -->
</foreach>
<delete id="deleteCarts">
    DELETE SHOP_CART
    WHERE CART_CODE IN 
    <foreach collection="cartCodeList" item="cartCode" separator="," open="(" close=")">
        #{cartCode}
    </foreach>		
</delete>