이 글의 제목처럼 MySQL 에서 가끔 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
를 사용했을 경우 주석을 좀 더 쉽게 처리하면서 디버깅을 수월하게 할 수 있다.