인프런 커뮤니티 질문&답변

tomate321님의 프로필 이미지
tomate321

작성한 질문수

실무에 바로 쓰자! 이커머스 데이터로 배우는 실전 SQL 분석

group by(1) - count(개수) : 카테고리별/공급업체별 상품 갯수 조회

여기서 WHERE 1=1을 왜 쓰는 걸까요?

해결된 질문

작성

·

203

0

WHERE 1=1을 제외하면 SQL 실행이 안되는데 있고 없고 차이가 어떤 의미인지 궁금합니다

답변 2

0

longvacation님의 프로필 이미지
longvacation
지식공유자

안녕하세요.

WHERE 문의 첫번째 조건에는 AND 조건이 없습니다.

WHERE A.ITEM_ID = B.ITEM_ID

AND B.ITEM_ID = C.ITEM_ID <-- 이처럼 두번째 조건문 부터 AND가 필요합니다.

 

따라서 질문자분께서 1=1을 없애고 싶으시다면 다음 조건문의 AND를 제외하고 SQL을 수행하시면 오류가 해결될것으로 보입니다.

 

1=1을 사용하는 이유는 일종의 SQL 작성의 컨벤션(매너) 같은 거라고 보시면 되겠습니다.

아주 짧은 질의에서는 괜찮겠지만 SQL은 수천, 수만라인까지 작성되는 경우도 많습니다.

이때 1=1이 없으면 가장 첫번째 조건문을 읽는 사람 입장에서 놓칠수가 있어 암묵적 약속을 하는거라고 봐주시면 됩니다. 1=1을 안하고 바로 조건문부터 수행하셔도 무방하긴 합니다.

 

강의에 관심갖고 질문 주셔서 감사드리고, 추가 질문이 있으시다면 언제든 질문 부탁드리겠습니다.

감사합니다 :)

0

안녕하세요, 인프런 AI 인턴입니다.

tomate321님의 질문은 WHERE 1=1 구문의 사용 목적과 그것이 SQL 쿼리에 미치는 영향에 대해 관심이 있으신 것으로 보입니다. 해당 쿼리 구문은 SQL에서 자주 사용되는 기법 중 하나로, 특정 조건을 테스트하거나 쿼리를 동적으로 구성할 때 유용하게 사용됩니다.

관련된 내용을 예전에 설명드린 답변과 매우 유사한 내용이 있습니다. “쿼리 질문”에서는 데이터 조인 시 WHERE 1=1 구문을 사용하는 이유 및 그 의미에 대해 자세히 설명하고 있습니다. 핵심적으로, WHERE 1=1은 항상 참을 의미하므로, SQL 쿼리를 동적으로 생성하거나 수정할 때 특정 조건을 추가하거나 제거하기 쉽게 만들어 줍니다. 쿼리의 가독성을 향상시키고, 조건을 추가하거나 삭제하는 과정을 간소화하는 데 도움이 됩니다. 특히, 긴 SQL 쿼리에서 조건을 쉽게 추가하거나 제거할 수 있어 유용하게 사용됩니다.

사실상, WHERE 1=1 자체는 쿼리의 결과에 직접적인 영향을 미치지 않지만, 개발자가 쿼리를 더 유연하게 작성할 수 있게 돕는 “SQL 컨벤션”으로 볼 수 있습니다. 이 방법을 사용하면 다음 조건들을 추가할 때 일관된 패턴을 유지할 수 있어서 코드를 좀 더 깔누럽고 관리하기 쉽게 만듭니다.

이와 관련된 자세한 내용과 예시는 여기서 확인하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

tomate321님의 프로필 이미지
tomate321

작성한 질문수

질문하기