[MySQL] LIKE, NOT LIKE
[예시에 쓰이는 테이블]
# first name이 J로 시작하는 사람들 찾기
select * from name where first like 'J%';
# 결과
person_id first middle last
1 Jenny Jeong Smith
5 Jerry Park Miller
# last name이 s로 끝나는 사람들 찾기
select * from name where last like '%s';
# 결과
person_id first middle last
2 Alice Scarlet Rogers
7 Lizy Kang Jones
# middle name이 4글자인 사람들 찾기
select * from name where middle like '____'; // _ 4개
# 결과
person_id first middle last
5 Jerry Park Miller
7 Lizy Kang Jones
8 Ryan John Brown
[LIKE, NOT LIKE]
1. like는 특정 단어가 포함된 것을 찾을 때, not like는 포함되지 않은 것을 찾을 때 사용한다.
2. where절에 칼럼명 like 패턴 또는 칼럼명 not like 패턴 형태로 쓰인다.
- 찾고자 하는 패턴을 작은따옴표(' ')사이에 넣으면 된다.
3. like/not like를 여러 개 쓴다면 and, or로 연결하면 된다.
[패턴]
1. %: 0개 이상의 문자를 뜻한다.
- '가%'는 가로 시작하는 문자열을 뜻한다. 예) 가, 가방, 가로수
- '%다'는 다로 끝나는 문자열을 뜻한다. 예) 다, 하다, 우다다
- '% 나%'는 중간에 띄어쓰기 한 칸과 나가 있는 문자열을 뜻한다. 예) 나는 나비, 하기 나름
2. _: 문자 1개를 뜻한다.
- '_랑'은 랑 앞에 1글자가 있는 문자열을 뜻한다. 예) 너랑, 나랑
- '_영_'은 영 앞뒤로 1 글자씩 있는 문자열을 뜻한다. 예) 우영우, 환영해
3. 패턴에 작은 따옴표가 들어가야 할 경우 작은따옴표를 2번 쓴다.
- '%''s%'는 중간에 's가 있는 문자열을 뜻한다. 예) choonsik's sweet potato
4. 패턴에 %나 _를 써야 할 경우 이스케이프 문자(escape character)를 지정해 주면 된다.
- '%할인중%' 같이 칼럼 s에서 해당 패턴의 문자열을 찾고 싶다면 where s like ''x%%x%' escape 'x'라고 쓰면 된다.
- 위의 예시의 경우, x 바로 뒤에 있는 %(첫 번째와 세 번째 %)는 % 그 자체를 나타내고, 두 번째 %는 0개 이상의 문자를 뜻하는 %가 된다.
- escape에 지정되는 문자는 x가 아니어도 상관없다.