현업에서는 SQL문을 메서드로 만들어서 쓰기 때문에

WHERE 이후로 바로 AND나 OR이 와야할때가 있다

 

하지만 아래의 코드는 작동하지 않는다

AND문앞에 선행 조건이 없기 때문

SELECT
FROM
WHERE
  AND
  AND
  AND

 

 

이럴 때 사용하는 것이 1=1, 1=0 이다

AND문을 작성하기 위한 방법으로 1=1자체는 아무런 의미가 없다

SELECT
FROM
WHERE 1=1 -- 1=0, 1=1 상관없다
  AND
  AND
  AND

 

 

또한 AND문 안에서 OR조건을 작성하기 위해서 이런 작성법도 존재한다

SELECT
	*
FROM
	FREEBOARD
WHERE
  BOARDID = 'FREE' --boardId가 free이면서
  AND(1=1 --셋 중하나라도 만족하면 true를 반환
      OR (BOARDNUMBER >= 1000)
      OR (READCOUNT >= 100)
      OR (UPCOUNT >= 10)
     )

 

마이바티스를 사용한다면 XML파일 안에 작성하기 때문에 쓸일은 없겠지만

자바코드로 SQL문을 작성하게 되면 메서드로 SQL문이 작성되어있고

메서드에 변수만 넣어서 동적으로 SQL문을 생성하기 때문에

 

위 같이 WHERE 다음에 AND가 바로 오거나

AND문 안에서 여러 조건을 비교할때 바로 AND나 OR이 오게 된다

+ Recent posts