본문 바로가기
마구니 패치 노트

SQL 쿼리 파라미터 바인딩 %?% 문제

by 손건호 2023. 3. 3.

LFG 서비스의 검색기능을 구현하는 중이다

무언가를 조회 할때 파라미터의 값이 정확히 일치 해야만 조회가 가능한

단순한 select문을 검색 기능에 적용하면

검색기능이 너무 불편할것이다

 

예를들어 스팀 멀티 게임 overcooked! 2 를 검색 하고 싶다면

cooked 만으로도 검색이 가능 하여야 한다

 

이 기능을 구현하기위해 Like 를 사용하여 부분 일치 조회를 사용,

바인딩될 단어의 앞 뒤에 %를 사용하여  바인딩 될 단어가 게임이름의 어느 위치에 있는지는

상관없이 조회가 가능하도록 하고 싶었다

 

String sql 문자열에 검색할 파라미터를 바인딩할때 %를 사용하면

'' 때문에 생기는 오류 때문에 시간을 많이 잡아먹었다

sql 문자열에 % 를 입력하는것이 아니라

바인딩할 때 % 같이 쥐어주게되면 '' 를 밖으로 감쌀수 있었다

 

전
전 결과
후 결과

setString할때 고정된값(%)을 포함하여 바인딩 하는방식으로 문제를 해결했다

댓글