[MySQL] Where 1 = 1의 의미

Hyuk·2023년 5월 11일
0

개요

이 글의 제목처럼 MySQL 에서 가끔 Where 1 = 1 이라는 조건문을 볼 때가 있다. 필자 또한 토이 프로젝트에서 유지보수하는 도중 발견한 코드였고, 찾아보니 나중에 처리하기 편하도록 달은 실무 팁이였다. 이번 글에서는 이를 공유하고자 한다.

Where 1 = 1를 사용하는 이유

MySQL에서 where 문을 통해 조건문을 작성할 수 있고, AND를 통해 다중 조건문을 작성할 수 있다. 예를 들면 다음과 같이.

  `SELECT 
      answer,
      score
   from game
   WHERE user_id = ${id}
      AND name = ${name}
  `,

다만, 코드를 작성하고 테스트를 하는 과정에서 본인이 쓴 코드 일부분을 주석처리하고 테스트하는 경우가 많다.

위와 같은 경우에서는 user_id = ${id} 가 맞는지, 그리고 그 후에 name = ${name} 이 맞는지를 판단할 수가 있을 것이다.

그때 아래와 같이 주석처리를 하여 테스트해 볼 수가 있다.

  `SELECT 
      answer,
      score
   from game
   -- WHERE user_id = ${id}
      WHERE name = ${name}
  `,

그럴 때 AND를 WHERE로 잠시 변경했다가 다시 AND로 변경해야 하는 상황이 발생한다.

하지만 WHERE 1=1 을 작성하면 어떻게 될까?
이는 곧 항상 참을 뜻하고, 별 의미 없어 보이기도 하지만 위와 같은 상황을 쉽게 해결해 줄 수 있다.

  `SELECT 
      answer,
      score
   from game
    WHERE 1 = 1
      -- AND user_id = ${id}
      AND name = ${name}
  `,
  `SELECT 
      answer,
      score
   from game
    WHERE 1 = 1
      AND user_id = ${id}
      -- AND name = ${name}
  `,

이처럼 WHERE 1 = 1 를 사용했을 경우 주석을 좀 더 쉽게 처리하면서 디버깅을 수월하게 할 수 있다.

profile
프론트엔드 개발자

0개의 댓글