일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- static
- 정승제
- JavaScript
- 다항식
- 인수분해
- 이클립스파일
- 시퀀스변경
- connectbyprior
- 페이징처리
- 시퀀스삭제
- 시퀀스 재생성
- 노션
- 자바
- 정적메소드
- agileprosses
- ordersiblingsby
- private
- 생성자
- 기본생성자
- 매개변수
- 곱셈공식
- .closet
- startwith Connect by
- 인터페이스
- 애자일소프트웨어
- 코딩
- .parents
- 제이쿼리
- 애자일프로세스
- jQuery
- Today
- Total
양치치의 아카이브
where 1 = 1 본문
쿼리 작성시 where 조건절 뒤에 추가로 조건절이 붙을때 특히 동적쿼리문 작성시 if 조건절이 들어 갈때
가독성과 흐름파악이 용이하다.
예를들어 나이가 20 살 이상이고 작성자 아이디로 검색하는 동적 쿼리문을 작성 할시
select * from TABLE
where AGE >= 20
AND <if test="조건 : select = title">
TITLE LIKE '%' || #{keyword} || '%'
</if>
<if test="조건 : select = writer">
WRITER LIKE '%' || #{keyword} || '%'
</if>
이 쿼리를 where 1 = 1 을 사용하면
select * from TABLE where 1 = 1
where AGE >= 20 AND
<if test="조건 : select = title">
TITLE LIKE '%' || #{keyword} || '%'
</if>
<if test="조건 : select = writer">
WRITER LIKE '%' || #{keyword} || '%'
</if>
비슷한 원리로 OR 조건절에서는 where 1 = 0 을 사용해서 아무것도 없는상태에서 or 구문 추가.
훨씬 보기쉽고 간결하다 . 주석처리시에도 용이해지고
또한 조건으로 null 체크를 할 수도 있어서 동적 SQL을 만들기에 간편하다.
동적쿼리, 조건 절 많아 질 때 selecte문에 사용시 유용한것 같다.
편리한점도 있는 반면 예외의 위험성도 존재하니
null 처리, 예외 처리 주의 하고
update, delete 문에서는 되도록 쓰지말자.
'코린이의 데이터베이스 일기장' 카테고리의 다른 글
데이터베이스 테이블 용량 늘리기 (0) | 2022.11.01 |
---|---|
데이터베이스 정규화 (0) | 2022.07.18 |
SQL문 연습 (0) | 2022.06.14 |
java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended 에러 (0) | 2022.02.22 |
데이터베이스 시드변경 (0) | 2022.02.22 |