SQL에도 python 의 str.contains 와 비슷한 기능을 가진,
like가 존재한다. like는 문자열들 안에서 내가 찾고 싶은 단어가 포함된 문자열을 찾는 것이다.
select *
from books ; 의 화면이다.
author_fname 에 'da'가 들어있는 문자열을 찾아 책제목과 작가 이름 조회해 보겠다.
like를 사용할 때는 아래와 같이 입력한다.
1
2
3
|
select title, author_fname, author_lname
from books
where author_fname like 'da';
|
cs |
위 코드는 author_fname 에 'da' 가 들어있는 문자열을 찾아 title, author_fname, author_lname 컬럼을 보여라.
이다.
author_fname 에 'da'가 들어가 있는 데이터는 많지만, 위의 코드를 실행시켜면, 아무것도 조회가 되지 않는다.
이유는 like 'da' 라고 입력시에는 author_fname의 데이터가 'da' 인 것만 찾기 때문이다.
그렇다면 'da' 를 포함한 데이터를 찾으려면 어떻게 할까.
아래에서 확인하겠다.
1
2
3
|
select title, author_fname, author_lname
from books
where author_fname like '%da%';
|
cs |
원래 코드에서 da 양 옆에 % 이 들어갔다.
이것의 뜻을 하나씩 보면,
%da da 왼쪽으로 글자가 있어도, 없어도 된다. (끝이 da로 끝나는 da가 포함된 문자열)
da% da 오른쪽으로 글자가 있어도, 없어도 된다. (da로 시작하는 da가 포함된 문자열)
이러한 뜻이다 .결국 %da% 이렇게 쓰게 되면 da 앞으로 글자가 있어도 없어도 상관 없다는 뜻으로,
da가 포함되어 있는 데이터를 찾아 오라는 뜻이다.
위의 %위치를 참고하여 한 쪽 방향으로만 da가 포함된 문자열을 찾을수도 있다.
like 는 숫자형 데이터의 자릿수를 설정하여 가져올 수 있다.
이때는 언더스코어( _ ) 를 사용한다.
위는 stock_quantity 의 데이터가 두자리인 데이터의 title, stock_quantity 컬럼을 조회한것이다.
언더스코어의 갯수에 따라 자릿수를 설정한다.
_ : 한자리
__ : 두자리
___ : 세자리 등..
그리고 _ , % 를 포함한 문자열을 찾으려면, 앞에 이스케이프문자인 \을 입력한다.
select title
from books
where title like '%\%%' 책 제목에 %가 포함된 문자열 찾기
select title
from books
where title like '%\_%'; 책 제목에 _ 가 포함된 문자열 찾기
'IT 프로그래밍 관련 > MySQL' 카테고리의 다른 글
MySQL between , not between (0) | 2021.03.17 |
---|---|
MySQL 시간관련데이터 처리 (0) | 2021.03.16 |
MySQL limit 와 offset (0) | 2021.03.16 |
MySQL 테이블 데이터 정렬하기 (0) | 2021.03.16 |
MySQL 문자열 함수들 (0) | 2021.03.16 |
댓글