반응형
- 개념
1=1은 항상 참을 의미
- 사용시기
동적으로 변하는 인자 값을 사용하는 SQL문 사용시 필요 (WHERE 2=2 등등 동일)
- 사용목적
DAO 또는 XML의 where문에 and문을 sql = sql + "AND ID = '111'"; 이와 같이 추가한다고 할 경우
일반 WHERE문의 경우 첫번째 조건인지 아닌지 구분이 필요하지만(첫번째에는 AND가 붙지않기 때문)
동적 WHERE문의 경우는 WHERE 1=1을 선언후 앞쪽에 AND를 붙여 사용하면 몇 개를 사용하든 문제가 되지 않습니다.
일반 WHERE문 |
동적 WHERE문 |
SELECT * FROM AAA WEHRE ID = '111'
|
SELECT * FROM AAA WEHRE 1=1 AND ID = '111' |
- 주의
검색을 위한 쿼리에서는 사용하면 효율적이지만 수정과 삭제를 하는경우에는 사용을 지양하는 것이 좋습니다.
수정과 삭제시 WHERE 1=1를 사용하게되면 조건이 없을 경우 테이블의 모든 데이터가 변경 또는 소실될 우려가 있기 때문입니다.
반응형
'DB > SQL' 카테고리의 다른 글
[SQL] 특정 문자만 UPDATE (0) | 2019.12.02 |
---|---|
[SQL] 컬럼명으로 테이블 찾기 (0) | 2019.11.26 |
[SQL] AS(alias) 구문 개념 및 예제 (0) | 2019.11.26 |
[SQL] DECODE (0) | 2019.11.26 |
[SQL] 날짜데이터(DATE) 형식 SELECT (0) | 2019.11.26 |