본문 바로가기

SQL(MySQL, ORACLE)

[MySQL][Mybatis]LIKE검색할 때 충분히 할 수 있는(?) 실수

LIKE검색 기능을 만들던 중

쿼리도 잘짠거같고

HTML에서 Action으로 넘긴 값도 Controller에 잘 출력되는데

왜 오류가 나는거지? 했는데...!

<select id="selectSearchResult" parameterType="String" resultType="searchVO">
    select 
        찾는 내용이 있는 컬럼 
    from 
        table1
    where
        찾는 내용이 있는 컬럼 like '%${keyword}%'
</select>

어디서 오류가 난거지 했더니!..

mybatis에서 받아온 parameter로 검색할땐 %와 떼어놔 줘야 인식한다는걸 깨달았다..!!

따라서

<select id="selectSearchResult" parameterType="String" resultType="searchVO">
    select 
        찾는 내용이 있는 컬럼 
    from 
        table1
    where
        찾는 내용이 있는 컬럼 like "'%'+${keyword}+'%'"
</select>

'%${keyword}%' => "'%'+${keyword}+'%'" 

로 바꿔주면 오류가 나지 않고 해결 된다!

여기를 바꿔줘도 오류가 난거면..

 

본인이 사용하는 DB툴에 저 쿼리를 검색 해보길 바란다.

쿼리 결과가 잘 출력이 안된다면 where절을 지우고 해보고

where절의 조건을 다시 작성 해보는걸 추천.

 

쿼리 결과가 잘 출력이 된다면..

아래 항목을 체크해보길 바람.

 

controller에서 sql로 넘길적에 올바른 변수를 넘겼는가?

html에서의 name값과 controller에 getParamer의 이름과 같은가?

를 잘 체크 해보길 바람.