Open chanhihi opened 10 months ago
SQL LIKE %% 부분에 걸리는 것으로 추정 "C++" 처리했던 것처럼 특수문자 일부를 걸러주어야할 것으로 판단됨 금요일에 수정 예정
%를 입력하는 경우 전체 검색이 됨 SQL LIKE에 걸려서 인것으로 판단됨 \%가 붙게 만드는 등 SQL 구문이 아닌 일반 문자열로 인식되게 해야함
SELECT id FROM member WHREE id LIKE '%/_%' ESCAPE '/';
?의 경우 검색결과 미리보기에서는 error가 없이 결과가 나오는데 검색을 하면 에러 발행함 둘의 로직이 비슷한데 어느 부분에서 차이점이 발생하는지 파악 필요
검색어를 토대로 LIKE로 SQL에 select하는 부분에서 특수문자 ?, % 처리가 잘 안되는 것으로 판단하여 SQL의 LIKE와 ESCAPE 조건을 추가하고, 검색어에 특수문자가 있으면 ESCAPE 문자를 추가하여 처리하고자 하였습니다
하지만 그것만으로는 해결되지 않고 여전히 검색결과 미리보기와 검색이 서로 다르게 나오고 있는 상황입니다
export const addEscapeSignToSpecialCharacters = (input: string, esacpeSign: string) => {
const regex = /[^a-zA-Z0-9가-힣ㄱ-ㅎㅏ-ㅣ\s]/g;
const modifiedText = input.replace(regex, (match) => `${esacpeSign}${match}`);
return modifiedText;
};
'?'의 경우 아직 안되는 중 transaction에 이슈가 있는 것으로 판단됩니다
추후에 이어서 디버깅 예정 To be continue...
재현 방법
2개 이하까지 SQL에러 발생
3개 이상은 가능
발생 위치
검색
추가 정보
No response