본문 바로가기

DB/SQL

[SQL] WHERE 1=1 개념, 사용시기, 목적, 주의사항

반응형

 

  • 개념

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