Database
[Mybatis] select 문에 String 검색어 추가하기
서피
2021. 5. 2. 14:14
아래와 같이 parameter로 searchKeyword를 넣어주며 시도했는데, searchKeyword에 아무값도 들어가지 않은 듯 모든 컬럼을 select하는 문제가 발생했다.
<select id="selectListByKeyword" parameterType="String" resultMap="companyResultMap">
SELECT CO_URL, CO_NAME, CO_INTRODUCE, MB_NAME, MB_ADDRESS1, MB_ADDRESS2
FROM COMPANY C JOIN
MEMBER M ON C.MB_NO = M.MB_NO
WHERE (C.CO_URL LIKE '%' || #{searchKeyword} || '%') OR (C.CO_NAME LIKE '%' || #{searchKeyword} || '%')
</select>
오류도 없이 전체를 select하며 잘 동작하는 중
문제의 원인은 || 이었다.
<select id="selectListByKeyword" parameterType="String" resultMap="companyResultMap">
SELECT CO_URL, CO_NAME, CO_INTRODUCE, MB_NAME, MB_ADDRESS1, MB_ADDRESS2
FROM COMPANY C JOIN
MEMBER M ON C.MB_NO = M.MB_NO
WHERE (C.CO_URL LIKE '%' #{searchKeyword} '%') OR (C.CO_NAME LIKE '%' #{searchKeyword} '%')
</select>
와일드카드를 사용할 때 || 를 넣어주지 않아도 잘 동작한다.
문제 해결에 참고한 stackoverflow 링크