Search
⬆️

WHERE 1=1을 왜 써주는것일까?

태그
Database

WHERE 1=1?

where 1=1은 말그대로 참을 뜻한다.

WHERE 1=1 사용하는 이유

1.
쿼리 디버깅 시, 주석처리를 위해
예를들어
SELECT * FROM ITEM WHERE ITEM_ID=3 AND ITEM_NAME='A';
SQL
복사
이 쿼리문에서 ITEM_NAME=’A’ 조건문이 잘 실행되는지 확인하기 위해서
ITEM_ID=3인 조건문을 주석처리하려면
SELECT * FROM ITEM WHERE --ITEM_ID=3 --AND ITEM_NAME='A';
SQL
복사
이렇게 해버리면 매우 번거롭게 주석처리를 해야한다. 따라서 WHERE절 맨 처음에 1=1을 써주면 간편하게 주석처리를 해줄 수 있다.
SELECT * FROM ITEM WHERE 1=1 AND ITEM_ID=3 AND ITEM_NAME='A';
SQL
복사
2.
동적쿼리를 작성하기 위해
동적쿼리를 작성할 때 where 1=1을 사용하지 않으면 아래와 같이 복잡한 소스를 작성해야한다.
query="SELECT * FROM ITEM"; if(!itemId.equals("") { query+="WHERE ITEM_ID='"+itemId+"'"; } if(!itemName.equals("") { if(!itemId.equals("") { query +="AND"; } else { query += "WHERE"; } query+="ITEM_NAME = '"+ itemName + "'"; }
Java
복사
하지만 where 1=1을 사용하면 간단한 소스를 작성할 수 있다.
query="SELECT * FROM ITEM WHERE 1=1 "; if(!itemId.equals("") { query+="AND ITEM_ID='"+itemId+"'"; } if(!itemName.equals("") { query+="AND ITEM_NAME = '"+ itemName + "'"; }
Java
복사