[SQL] LIKE / ESCAPE 다시 보기

snowballnote·2026년 10월 6일

회사 PMS에서 사업 검색할 때 LIKE를 썼다.

WHERE LOWER(COALESCE(notice_name, '')) LIKE ? ESCAPE '\'

LIKE는 문자열 일부가 포함되는지 찾을 때 쓴다.

%고도화%
→ 앞뒤에 뭐가 있어도 "고도화"가 포함되면 검색

근데 %랑 _는 LIKE 안에서 특별한 의미가 있다.

%
→ 여러 글자

_
→ 한 글자

그래서 사용자가 검색어에 %나 _를 직접 넣으면
원래 문자 그대로가 아니라 패턴으로 해석될 수 있다.

Biz Assist에서는 검색어를 넣기 전에 escape했다.

value
    .replace("\\", "\\\\")
    .replace("%", "\\%")
    .replace("_", "\\_");

그리고 SQL에는

ESCAPE '\'

를 붙였다.

즉

사용자가 입력한 %
→ 와일드카드가 아니라 실제 % 문자로 검색

하게 만든 것.

LIKE 검색 만들 때는 %랑 _ 처리도 같이 봐야 한다.

profile
개발자로 이 험난한 세상 살아가기

0개의 댓글