SQL WHERE 1=1을 쓰는 이유는?

Minsu Kang·2025년 2월 12일
0

WHERE 1=1을 SQL에서 사용하는 이유는 주로 동적 쿼리(dynamic query) 작성 시 코드의 일관성을 유지하고 가독성을 높이기 위해서입니다.

  1. 동적 쿼리 작성 시 조건 추가를 편리하게 하기 위해
  • 동적으로 SQL 쿼리를 조합할 때, WHERE 1=1을 추가하면 조건을 추가할 때 매번 WHERE 키워드를 고려할 필요가 없습니다.

예제 1: WHERE 1=1 없이 조건 추가 시

SELECT * FROM employees
WHERE department = 'HR'
AND age > 30;
- 만약 필터링 조건이 없으면 WHERE 자체를 넣어야 할지 고민해야 함.
- 조건을 추가할 때 첫 번째 조건 앞에 WHERE이 필요하고, 두 번째부터는 AND를 사용해야 하는데, 이를 동적으로 조합하면 번거로울 수 있음.

예제 2: WHERE 1=1 사용시

SELECT * FROM employees
WHERE 1=1
AND department = 'HR'
AND age > 30;
- WHERE 1=1을 추가하면 이후 조건을 단순히 AND로 추가할 수 있음.
- 필터링 조건이 없어도 쿼리 구조가 유지됨.
  1. 자동 생성된 SQL 쿼리에서 사용됨
    ORM(Object-Relational Mapping) 또는 쿼리 빌더 같은 도구들은 동적으로 쿼리를 생성할 때 WHERE 1=1을 포함하는 경우가 많습니다. 이는 위에서 설명한 것처럼 조건을 추가할 때 로직을 단순하게 유지하기 위한 패턴입니다.

  2. 성능 영향?
    WHERE 1=1은 항상 참(TRUE)이므로 SQL 실행 계획(Execution Plan)에 영향을 미치지 않음
    즉, 최적화 엔진(Optimizer)이 이를 무시하고 실행하기 때문에 성능 저하 없음

단순히 쿼리 작성 편의성을 위한 용도로 사용됨
🔥 결론
✔ 동적 SQL을 쉽게 조합하기 위해 사용
✔ 첫 번째 조건을 AND로 일관되게 연결할 수 있음
✔ 성능에는 영향이 거의 없음
✔ 자동 생성된 SQL 쿼리에서도 종종 보임

즉, WHERE 1=1은 주로 가독성을 높이고 동적 SQL을 쉽게 조합하기 위한 테크닉이라고 보면 됩니다. 🚀

profile
안녕하세요! 강민수입니다.

0개의 댓글