본문 바로가기

프로그램/ORACLE

오라클 LIKE 전체 검색 주의할 점

반응형

* 오라클 LIKE 전체 검색 주의할 점

 

보통 전체 검색할때 LIKE 문을 사용합니다.

 

예) select * from 테이블명 where 컬럼명 like '%'

 

을하면 전체 검색이 된다.

 

하지만 검색하는 컬럼이 null을 허용하면 위의 쿼리에 대한 전체 검색 결과가 틀리게 나온다.

 

like검색시 null이 있는 컬럼은 포함시키지 않기 때문이다.

 

* 컬럼 값에 null 이 있는 경우의 전체 검색할 경우에는 컬럼명 is null 을 추가해야된다.

 

예) select * from 테이블명 where 컬럼명 like '%' or 컬럼명 is null

 

ibatis같은 동적쿼리문을 사용하는 쿼리에서는 if조건을 걸어서 조건절에서 아예 검색할 컬럼을 빼서 조회를 해야 전체 조회가 된다.

 

select * from 테이블명

if(변수 != "%"){   // 검색어가 있는 경우에만 검색

where 컬럼명 like '%'

}

반응형