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
복사