IT/ORACLE

[ORACLE] WHERE 1=1는 왜 사용하는거야?

나콘 2023. 5. 16. 14:43

 

WHERE 1=1

 

WHERE 1=1 는 항상 참인 조건이다 

("WHERE 1=1"조건은 상수 값 1을 항상 동일한 자신과 비교하기 때문에 참이다)

쿼리 디버깅과 쿼리를 동적으로 구성하거나

WHERE 절에 조건을 추가하는 프로세스를 단순화 하는 방법으로 사용된다.

 

 

이 조건을 쿼리에 포함하면 사실상 아무런 영향을 미치지 않는다. 넣어도 되고 안넣어되고 개발자 마음

그러나 초기 조건에 대해 AND또는 OR 연산자를 사용해서 추가 조건을 넣기 위한 시작점이라고 생각하면 될듯하다

WHERE 1=1로 시작하면 요구 사항에 따라 AND 또는 OR 를 사용해서 후속 조건을 쉽게 추가할수있다는 장점이 있다 

 

 

 

쿼리 디버깅을 할 때 WHERE 1=1을 사용하면 조건을 수정하기가 쉬워서 사용한다 

이렇게 사용할때랑 

 

 


 

이렇게 사용하면 동적 쿼리를 작성할 때  조건을 유연하게 추가할 수 있다 

어떠한 기준에 따라 조건을 추가하거나 제거하려면 

첫번째 조건인가? 생각할 필요없이 WHERE 1=1뒤에 추가하거나 제거하면 그만이다.

그래서 쿼리의 동적 구성보다 간단하게 만들고 불필요한 코드 복잡성을 방지.

 

 

 

 

[정리] 

 

WHERE 1=1은 항상 참인 조건이므로 쿼리에 추가해도 쿼리 결과에 영향을 주지않는다

그러나 쿼리 디버깅과 동적 쿼리를 작성할 때 유용할 수 있습니다.

그래서 사실 필요하지 않은 부분이라서 삭제해도 상관없음

개인의 취향에 따라 사용하면 될 것 같다 

반응형