SELECT 데이터 조회 결과에 따라
WHERE 조건문을 바꾸고 싶을 때 쓰는 코드.
예제 EXAMPLE
데이터 레코드의 WRITE_GBUN(게시글 구분)이 '1'이라는 특정값일 때를 제외하곤
USER_ID(작성자 id) 조건을 주지 않고 검색하고 싶을 경우.
<select id="funcName" parameterType="Map" resultType="egovMap">
SELECT
BOARD_ID, <!--게시판 id-->
TEAM_ID, <!--팀 id-->
WRITE_SEQ, <!--게시글 순번-->
USER_ID, <!--작성자 id-->
USER_NAME, <!--작성자 이름-->
SUBJECT, <!--게시글 제목-->
WRITE_DESC, <!--게시글 내용-->
WRITE_GBUN <!--게시글 구분-->
FROM WRITING
WHERE BOARD_ID = #{boardId}
<if test="writer != '' and writer != null">
AND
(
(WRITE_GBUN = '1' AND USER_ID = #{writer})
OR
(WRITE_GBUN != '1')
)
</if>
ORDER BY CHAT_SEQ, TEAM_ID
</select>
WHERE절에 AND를 추가해주고 이어지는 조건절 안에 한 번 더 OR를 줘서
검색된 레코드의 WRITE_GBUN이 1일때는 작성자 id 조건을 같이 주고,
1이 아닐 때는 비워서 모든 작성자들이 선택되게 함
'SQL' 카테고리의 다른 글
[SQL] 페이징하기 : 페이지마다 특정 개수의 글목록 불러오는 쿼리 (0) | 2020.03.18 |
---|---|
[SQL] 데이터에 넘버링하기 (0) | 2020.03.12 |
[SQL] decode() 함수 (0) | 2020.02.14 |
쿼리문 하나에서 두 개의 COUNT 조회하기 (0) | 2020.01.29 |
[SQL] 같은 테이블에 데이터 복사 (0) | 2019.12.26 |
댓글