문제
SQLite
내가 작성한 오답
LIKE '%_%' 에서 _(언더스코어)는 와일드카드로 단일 문자를 의미
→ “한 글자짜리 아무 문자라도 포함된 경우”가 출력됨

select distinct page_location
from ga
where page_location not like '%_%'
내가 작성한 정답
escape를 지정해서 _를 문자 그대로 인식하게 해준다
select distinct page_location
from ga
where page_location not like '%&_%' escape '&'
order by 1 asc
정규표현식으로 걸러준다 → sqlite는 정규식 사용이 불가할 때 많음 주의!
select distinct page_location
from ga
where page_location not REGEXP '_'
order by 1 asc
LIKE와 REGEXP의 패턴 매칭 방식
• LIKE: _(언더스코어)를 “임의의 단일 문자” 로 해석하는 와일드카드 매칭
• REGEXP: 정규 표현식(Regex) 을 사용하여 특정 패턴을 매칭

% → 0개 이상 모든 문자 (LIKE 'a%' → a로 시작하는 모든 문자열)
_ → 정확히 한 글자 (LIKE '_a_' → 두 번째 글자가 a인 정확히 3글자 문자열)
LIKE '_a_' 처럼 _를 사용하면 특정 자리의 글자를 고정하고 검색 가능하다!
Share article