[SQL] WHERE 1=1

양승우·2024년 10월 15일

SQL

목록 보기
8/12

참고
where 1=1 쓰는 이유
[MSSQL] WHERE 1=1이 뭐야? 왜 쓰는 거야?
[SQL/Oracle] WHERE 1 = 1 사용하는 이유, 사용하지 말아야 하는 이유

WHERE 1=1은 그 자체로는 아무런 효과가 없다.
WHERE TRUE와 같기 때문

그렇다면 왜 WHERE 1=1을 사용하느냐?

가장 큰 것은 추가적인 조건문을 작성하기 용이하기 때문일 것이다.

WHERE 1=1
	AND (조건문1)
    OR (조건문2)

WHERE 1=1을 쓰면 그 아래는 AND, OR을 쓰고 쭉쭉 조건을 추가해주면 된다
심지어 디버깅도 편한 것이, 그냥 1=1은 내버려두고 그 아래 row들에 대해 주석처리 해주면 된다

그리고 동적 쿼리에서 용이하다고 하는데,
사실 이 부분은 아직 잘 모르겠다


물론 WHERE 1=1 사용을 지양해야 한다는 의견들도 있는데
1) 인덱싱이 들어간 테이블에 대해 성능 저하가 발생할 수 있다
2) delete 문의 경우 실수로 모든 데이터를 날려버릴 수 있다
일단 이해된 것은 이 정도


사실 의미상으로는 정말 의미없어 보였지만,
나도 코드 테이스 하면서 첫번째 조건 주석 처리 할 때 사소한 귀찮음이 많았던 것을 기억하면
이건 분명 의미가 있지 않을까 싶다
코드를 짜고 눈으로 읽을 때도 편할 것 같고

조건이 1~2개일 때는 상관 없겠지만, 식이 길어진다면 적극 활용해볼 수 있지 않을까

profile
어제보다 오늘 더

0개의 댓글