SQL에서 WHERE 1=1 ?

Web Development assistant·2021년 10월 26일
0

# SQL

목록 보기
2/28

SELECT * FROM
TBL_BOARD
WHERE 1=1
AND BNO = 10
AND WRITER = 'JSON'
AND VIEWCNT = 10



이러한 쿼리문이 있을때 WHERE 1=1은 대체 무얼 의미하는가?

WHERE 1=1 는 TRUE (참)을 뜻한다. 즉 있어도 없어도 그만이다.
그럼에도 WHERE 1=1를 쓰는 이유는

  1. 주석처리의 간편함.
    보통의 경우엔 WHERE 다음 바로 조건이 붙기 마련인데,
    1=1를 추가함으로 AND절로 끊어서 주석 처리할 수 있다.
    WHERE 문을 신경 쓰지 않고 AND 조건문을 편리하게 사용가능

2.동적쿼리 사용시 WHERE 다음에 붙는 조건이 중요한데,
WHERE 1=1 를 사용하면

SELECT 
    * 
FROM 
    TBL_BOARD
WHERE 1=1
<if test="BNO != null || BNO > 0">
      AND BNO = #{BNO}
</if>
<if test="WRITER != null || WRITER > 0">
      AND WRITER = #{WRITER}
</if>

이와같이 동적 쿼리를 보다 쉽게 사용할 수 있다.

0개의 댓글