SQL에서 WHERE 1=1을 사용하는 이유는?

2025. 3. 14. 15:10·SQL
728x90

SQL 쿼리를 보다 보면 WHERE 1=1을 사용하는 경우를 종종 볼 수 있습니다.
예를 들어, 다음 두 쿼리는 같은 결과를 반환합니다.

SELECT * FROM user;

SELECT * FROM user WHERE 1=1;

그렇다면 굳이, WHERE 1=1을 추가하는 이유는 무엇일까요?

WHERE 1=1을 사용하는 이유

1. 동적 쿼리를 쉽게 조합하기 위해

WHERE 1=1을 사용하면 동적으로 조건을 추가할 때 불필요한 WHERE 처리 로직을 줄일 수 있습니다.

예를 들어, Python에서 검색 필터를 추가하는 코드가 있다고 가정을 하겠습니다.

query = "SELECT * FROM user WHERE 1=1"

if username:
    query += f" AND username = '{username}' "
if email:
    query += f" AND email = '{email}' "
  • WHERE 1=1이 있으면 첫 번째 조건이 무엇이든 신경 쓰지 않고 AND를 붙일 수 있습니다.
  • 만약 WEHRE 1=1이 없다면 첫 번쨰 조건 앞에 WHERE을 추가하는 로직이 필요해집니다.

즉, WHERE 1=1을 사용하면 동적 SQL을 쉽게 구성할 수 있어 코드가 더 깔끔해집니다.

2. 자동화된 SQL 생성에 유용함

SQL을 자동 생성하는 시스템(ex: ORM, BI도구 등)에서는 다양한 조건이 유동적으로 추가해야합니다.

  • 특정 필터를 사용하지 않으면 WHERE절이 아예 없어야 할 수도 있습니다.
  • 하지만 WHERE 1=1을 넣어두면 조건을 추가하거나 제거할 때 WHERE을 신경 쓰지 않아도 됩니다.

3. 쿼리 최적화에 영향이 없음

WHERE 1=1은 항상 True이므로 SQL 실행 시 자동으로 무시됩니다.
즉, 실행 계획(Execution Plan)에 영향을 주지 않으며 성능 저하가 발생하지 않습니다.

결론
  • WHERE 1=1은 동적 쿼리를 쉽게 조합할 수 있도록 도와줍니다.
  • 자동화된 SQL 생성 시 조건 추가/제거가 용이합니다.
  • 실행 최적화에 영향을 주지 않으므로 성능 걱정 없이 사용할 수 있습니다.

따라서 WHERE 1=1은 결과는 동일하지만, 동적 SQL을 작성할 때 유지보수성과 가동성을 높이는 좋은 기법입니다.

감사합니다,

728x90
반응형
저작자표시 비영리 변경금지

'SQL' 카테고리의 다른 글

데이터 무결성 검증을 위한 SQL Test 작성법  (0) 2025.03.26
DB 쿼리가 느릴 때 확인해야 할 것  (0) 2025.03.24
[SQL] IN 과 JOIN의 대한 궁금중  (0) 2024.04.23
[SQL] Date Format 함수 (formatting parameter)  (1) 2024.03.28
[MYSQL] 함수 만들기 (FUNCTION)  (0) 2024.03.20
'SQL' 카테고리의 다른 글
  • 데이터 무결성 검증을 위한 SQL Test 작성법
  • DB 쿼리가 느릴 때 확인해야 할 것
  • [SQL] IN 과 JOIN의 대한 궁금중
  • [SQL] Date Format 함수 (formatting parameter)
Balang
Balang
음악 전공생의 개발일지
  • Balang
    Balang
    Balang
  • 전체
    오늘
    어제
  • 반응형
    • All Post (132) N
      • python (36) N
        • selenium (4)
        • algorithm (3)
        • Django (6) N
        • Pandas | Numpy (19)
      • SQL (9)
      • Data Engineer (29)
      • Data Scientist (3)
      • Data Analysis (4) N
      • Computer Science (35)
      • Why? (15)
      • 마음가짐 (1)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
Balang
SQL에서 WHERE 1=1을 사용하는 이유는?
상단으로

티스토리툴바