mssql like 문 질문합니다.(쿼리) 0 2 1,266

by 김이수 [2015.08.24 13:22:26]


<!-- 검색 쿼리 (시/도)-->

<select id="ListSearchSi" parameterType="Map" resultType="Map" flushCache="true">



SELECT SUBSTRING(DIVISION_CD,0,3) DO_CD, DO_NM

FROM TABLE

GROUP BY SUBSTRING(DIVISION_CD,0,3) , DO_NM  

ORDER BY SUBSTRING(DIVISION_CD,0,3) , DO_NM

   

</select>



<!-- 검색 쿼리 (시/군/구)-->

<select id="ListSearchGu" parameterType="Map" resultType="Map" flushCache="true">

SELECT SUBSTRING(DIVISION_CD,0,6) GU_CD, GU_NM

FROM TABLE

WHERE SUBSTRING(DIVISION_CD,0,3) = #{rowList2}  --시/도의 cd번호를 참조

GROUP BY SUBSTRING(DIVISION_CD,0,6) , GU_NM  

ORDER BY SUBSTRING(DIVISION_CD,0,6) , GU_NM



</select>



<!-- 검색 쿼리 (읍/면/동)-->

<select id="ListSearchDong" parameterType="Map" resultType="Map" flushCache="true">

SELECT SUBSTRING(DIVISION_CD,0,9) DONG_CD, DONG_NM

FROM TABLE

WHERE SUBSTRING(DIVISION_CD,0,3) = #{rowList2} --시/도의 cd번호를 참조

AND SUBSTRING(DIVISION_CD,0,6)   = #{rowList3}   --시/군/구의 cd번호를 참조

GROUP BY SUBSTRING(DIVISION_CD,0,9) , DONG_NM  

ORDER BY SUBSTRING(DIVISION_CD,0,9) , DONG_NM

</select>



위의 검색조건 쿼리를 



 WHERE 1=1 

    <if test="DO_CD != null">

    AND SUBSTRING(H.DIVISION_CD,0,3) LIKE '%'  #{rowList2} '%'

    </if>

    <if test="GU_CD != null">

    AND SUBSTRING(H.DIVISION_CD,0,6)  LIKE '%' #{rowList3} '%'

    </if>

    <if test="DONG_CD != null">

    AND SUBSTRING(H.DIVISION_CD,0,9)  LIKE '%' #{rowList4} '%' 

    </if>



목록 조회 쿼리에 이런식으로 LIKE문을 사용하여 검색버튼 을 눌렀을 때 조건에 맞게뿌려지게 하려합니다. 

그런데 계속 전체리스트만 출력되네요.. 

혹시 LIKE 문을 잘못사용한건가요?..

 

by 창조의날개 [2015.08.24 17:09:10]

LIKE '%'  #{rowList2} '%'

문자열을 합쳐야 하지 않을가요?

LIKE '%' + #{rowList2} +'%'


by 김이수 [2015.08.24 18:23:37]

넵 쿼리도 합치고 조건도 통일시켜줬더니 됐네요... 감사합니다. 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입