where 1=1 은 항상 참인 조건

 

사용하는 이유는?

 - 편의성을 위해서

 - where 절은 고정적으로 넣어두고, 상황에 따라 and 절만을 추가하기 위해

   의미없는 조건절(항상 참인)을 맨 앞에 넣어주는 것.

 

예를 들어,

성별, 나이, 국적으로 사용자를 검색해야 한다면.

아래와 같은 여러가지 케이스가 나온다.

 

String sql = "select * from 사용자" ;

 if(조건)        sql = sql + " where 성별='남성' " ;

 else if(조건) sql = sql + " where 나이='20살' " ;

 else if(조건) sql = sql + " where 국적='한국' " ;

 else if(조건) sql = sql + " where 성별='남성' and 나이='20살' " ;

 else if(조건) sql = sql + " where 성별='남성' and 국적='한국' " ;

 else if(조건) sql = sql + " where 국적='한국' and 나이='20살' " ;

 else if(조건) sql = sql + " where 성별='남성' and 나이='20' and 국적='한국' " ;

 else            sql = sql + "" ;

 

 

이 때, where 1=1을 쿼리에 추가하면

조건문이 한결 간결해진다.

String sql = "select * from 사용자 where 1=1" ;

 if(조건) sql = sql + " and 성별='남성' " ;

 if(조건) sql = sql + " and 나이='20살' " ;

 if(조건) sql = sql + " and 국적='한국' " ;

[출처] [Oracle] where 1=1|작성자 치치포포

출처 : http://blog.naver.com/winter6120/220256057301

+ Recent posts