이런저런 검색은 해봤지만..
가독성때문이다.. copy & paste 때문이다.. 여러 글들을 보았습니다..
그러나 .. 아직 제 머리에 정확히 자리잡지 못해서 질문을 드려봅니다..
where 절에 1=1 주는 이유가 여러가지가 있겠지만.. 좀더 알고싶습니다..
이런저런 검색은 해봤지만..
가독성때문이다.. copy & paste 때문이다.. 여러 글들을 보았습니다..
그러나 .. 아직 제 머리에 정확히 자리잡지 못해서 질문을 드려봅니다..
where 절에 1=1 주는 이유가 여러가지가 있겠지만.. 좀더 알고싶습니다..
일단 대표적인 이유는 조회 조건이 동적으로 조합되는 경우 AND 조건의 결합을 쉽게하기 위해서 입니다.
예를 들면 동적쿼리에서 WHERE 조건 이후 상황에 따라
1. A ='K'
2. B <> 'TEST'
3. ...
위와 같은 다수의 조건들이 임의로 조합된다고 할때 AND A = 'K' 와 같이 'AND ~ ' 구문 형태로 조합되어야만 오류없이 결합이 가능합니다. 하지만 WHERE절 이후 첫번째 오는 조회조건일 경우 AND가 붙게 되면 오류가 발생합니다.
이를 방지하기 위해 WHERE 1=1 형태를 사용해 이후 어떤 조회 조건이 AND ~ 형태로 조합되더라도 오류가 발생하지 않게 만드는 것이죠.
하지만 조회 빈도가 높지 않거나 어떤 조회 조건이 조합되더라도 이슈가 없는 경우에만 한정적으로 사용하시도록 권장드립니다.
만능 쿼리의 경우 조회 편의성은 높으나 대량의 데이터 조회를 기반으로 할경우 성능 이슈등이 발생할수 있기때문에 서비스형 쿼리는 조회조건에 따라 별도의 구문이 실행되게끔 정적으로 구성하는것이 좋습니다.