728x90
WHERE 절에 서브 조건 하나 더 주기
🩸이슈 발생
IN_TYPE_CODE =3004인 게시판만 조회해야하는데 같은 IN_TYPE_CODE 여도
A경로에서는 SUB_TITLE = '전체공지' 인 글만 가져와야하고
B경로에서는 서브 조건이 필요 없어야 했다.
728x90
🩹이슈 해결
1. 기존 WHERE 절
SELECT
*
FROM
TBL_BOARD_INFO
WHERE
IN_TYPE=CODE = #{IN_TYPE_CODE}
- 여기서 뒤에 AND SUB_TITLE == '전체공지' 조건을 줄 경우 B 경로에서도 모두 전체공지 만 뜨게 된다.
2. 쿼리문에 서브조건을 위한 IF 문 추가
SELECT
*
FROM
TBL_BOARD_INFO
WHERE
IN_TYPE=CODE = #{IN_TYPE_CODE}
<if test="IN_TYPE_CODE == 3004 and SUB_TITLE == '전체공지'">
AND SUB_TITLE = '전체공지'
</if>
3. 해당 A 경로 컨트롤러에서 SUB_TITLE 값 넘겨주기
@RequestMapping(value="customer_app/notice")
public ModelAndView app_notice(CommandMap commandMap, HttpServletRequest request) throws Exception{
ModelAndView mv = new ModelAndView("/customer_app/notice/notice");
commandMap.put("IN_TYPE_CODE", "3004");
commandMap.put("SUB_TITLE", "전체공지"); // SUB_TITLE '전체공지'로 설정
// 이하 코드 생략
return mv;
}
4. 결과
- A 경로 : IN_TYPE_CODE = 3004 AND SUB_TITLE = '전체공지'
- B 경로 : IN_TYPE_CODE = 3004
💡유의사항
그냥 냅다 IN_TYPE_CODE = 3004 이면 SUB_TITLE='전체공지' 했을 때 맞게 뜨길래 성공했나 싶었는데다른 게시판의 글이 아예 안뜨는 참사가 일어났었다 ㅎ.. 어쨌든 우당탕탕 해결완료
300x250
'CODING > 🐬MySQL' 카테고리의 다른 글
[MySQL] 계정 생성 및 권한 부여하기 (0) | 2024.01.31 |
---|---|
[MySQL] 오라클 함수 총 정리 (1) | 2023.11.03 |
[MySQL] SQL 중복 값, 중복 개수 찾기 (GROUP BY, HAVING) (0) | 2023.10.13 |
[MySQL] MysqlDataTruncation 에러 해결하기 (0) | 2023.09.19 |
[MySQL] DATE_FORMAT 함수 사용하기 (0) | 2023.08.17 |