행궁동 데이터 엔지니어

반응형

쿼리를 분석하다 보면 WHERE 절에 의미없는 조건 1=1이 있는 경우가 있습니다.

 

WHERE 절에 의미없는 조건 1=1을 사용하는 이유는 동적 쿼리(Dynamic query)를 작성하기 위해서입니다.

 

WHERE 절에서의 동적 쿼리란? 

  • 상황에 따라 WHERE 절의 필터 조건을 바꾸는 것
  • WHERE 1=1로 쿼리를 작성하면 추가 조건이 필요할 때마다 동일한 양식(AND 조건문)으로 조건을 추가할 수 있음
  • WHERE절 첫 번째 조건이 항상 고정되어 있다면 1=1을 사용할 필요 없음
  • 동적 쿼리가 아닌 일반 쿼리에서도 1=1은 불필요

 

1=1을 사용한 동적 쿼리 예시

/* 1번 케이스 job, mgr 컬럼 기준으로 필터링 */
SELECT *
	FROM emp
  WHERE 1=1
  AND job = 'SALESMAN'
  AND mgr = '7698'
 
/* 2번 케이스 mgr, salary 기준으로 필터링 */
 SELECT *
	FROM emp
  WHERE 1=1
  AND mgr = '7698'
  AND salary > 1000

기타 궁금하신 사항은 댓글 남겨주세요.

 

감사합니다.

 

1. 젠트의 프로그래밍 세상, [Oracle] 조건문에 1=1 사용하는 이유 (WHERE,. 동적쿼리), https://gent.tistory.com/141
2. 코딩 팩토리, [Oracle] 오라클 동적 쿼리 사용법 & 예제 (PL/SQL), https://coding-factory.tistory.com/457
반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band