본문 바로가기
Database

[SQL] 조건별 검색 쿼리 정리!!

by GoodDayDeveloper 2020. 10. 2.
반응형

조건 할때마다 귀찮아서정리해봅니다..

아래 쿼리는 mysql 기준이며 오라클 부분도 조금씩 정리하였습니다

계속 새로운 쿼리를 사용할 일이 있으면 업데이트 하겠습니다! 다들 도움이 되시길..

 

 


 

input 문자열 검색 쿼리 (Like)

 

아래 예제는 mysql 기준이며, 오라클 쿼리는 조금 다릅니다.

오라클 : <![CDATA[ AND  컬럼명 LIKE '%' ||  #{ 조건명 } || '%' ]]>

 

 

1
2
3
<if test="cs_searchSelete=='cs_expertmb' and cs_searchKeyword != null and cs_searchKeyword !=''">
    <![CDATA[ AND  cs_expertmb LIKE CONCAT('%',#{cs_searchKeyword},'%') ]]>
</if>
cs

 


    

Select문 쿼리 

 하기 조건 쿼리는 input 문자열 찾는데도 사용이 가능하지만

부등호 같음(=)을 사용하였기 때문에, 데이터와 검색 조건이 딱 맞아야할때 사용합니다.

(ex : 데이터 '사과'를 검색할때 사과라고 검색해야 찾아집니다. 그래서 select같은 형식에 최적화됩니다.)

 

1
2
3
<if test="cs_searchonline != null and cs_searchonline !=''">
    <![CDATA[ AND  cs_type =  #{cs_searchonline} ]]> 
</if>
cs

 

 


날짜 검색 쿼리 (컬럼이 한개일 경우)

 

1
2
3
4
5
6
7
8
9
10
11
<if test="searchDate !='' or searchEndDate !=''">
    <if test="searchDate !='' and searchEndDate =='' ">
        <![CDATA[ AND his_date >= #{searchDate}   ]]> 
    </if>
    <if test="searchDate =='' and searchEndDate !='' ">
        <![CDATA[  AND his_date <= #{searchEndDate}  ]]> 
    </if>
    <if test="searchDate !='' and searchEndDate !=''">
        <![CDATA[  AND his_date BETWEEN #{searchDate} AND #{searchEndDate}    ]]> 
    </if>            
</if>
cs

         


 

날짜 검색 쿼리 (컬럼이 두개일 경우)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
<if test="searchCoSdate !='' or searchCoEdate !=''">
    <if test="searchCoSdate !='' and searchCoEdate =='' ">
        <![CDATA[ AND tblB.co_sdate >= #{searchCoSdate}   ]]> 
    </if>
    <if test="searchCoSdate =='' and searchCoEdate !='' ">
        <![CDATA[  AND tblB.co_edate <= #{searchCoEdate}  ]]> 
    </if>
    <if test="searchCoSdate != '' and searchCoEdate != ''">
        <![CDATA[  AND 
        (tblB.co_sdate BETWEEN #{searchCoSdate} AND #{searchCoEdate} or tblB.co_edate BETWEEN #{searchCoSdate} AND #{searchCoEdate} or (tblB.co_sdate >= #{searchCoSdate} and  tblB.co_edate <= #{searchCoEdate})) ]]> 
    </if>            
</if>
 
cs

 

 

 

반응형

댓글