728x90
WHERE 1=0은 항상 거짓을 의미한다.
1. WHERE 절의 OR 구문
결과값이 아무것도 없는 상태에서 OR 구문으로 결과를 하나씩 하나씩 추가
SELECT *
FROM A
WHERE 1=0
<if test="조건문">
OR 조건문
</if>
2. A테이블과 B테이블의 컬럼이 다른 경우
1=1 true 의미 / 1=0,1=2 false 의미
SELECT *
FROM A
WHERE 1=1
<if test="조건문">
AND 조건문
</if>
<if test="조건문">
AND 조건문
</if>
UNION ALL
SELECT *
FROM B
WHERE 1=1
<if test="조건문">
AND 조건문
</if>
<if test="조건문">
AND 1=0
</if>
참고 :
'DB' 카테고리의 다른 글
[PostgreSQL] DATE / TIME 다루기 (0) | 2021.09.02 |
---|---|
[Mybatis] The content of elements must consist of well-formed character data or markup (<![CDATA ]]> , <) 사용하기 (0) | 2021.07.09 |
[Oracle] 다중 LIKE OR / REGEXP_LIKE // IN (2) | 2021.06.29 |
[Oracle] ORA-01481: 숫자 형식 모델이 부적합합니다 (2) | 2021.06.02 |
[Oracle] DECODE 와 CASE 비교 (0) | 2021.05.27 |