본문 바로가기
IT 프로그래밍 관련/MySQL

MySQL에서의 in 과 not in

by 지나는행인 2021. 3. 17.
728x90

테이블을 보고 아래의 코드를 보자.

 

* books table

 

select *
from books
where released_year = 2017 or
        released_year = 1985 or
        released_year = 2010 or
        released_year = 2014 or
        released_year = 2008 ;

 

위의 코드는 books 테이블에서 출판년도가 2017년 이거나, 1985년 이거나 2010년 이거나 2014년 이거나 2008년인 

 

책의 데이터를 찾는다.   

 

이렇게 or 가 많이 필요로 하는 코드에서는 in() 으로 대체할 수 있다.

 

in() 의 사용법으로 위의 코드를 바꿔보면

 

select *

from books

where released_year in ( 2017, 1985, 2010, 2014, 2008 ) ;

 

로 바꿀 수 있다.  저 위쪽의 코드와 의미하는 것은 같다.

 

released_year컬럼이 2017, 1985, 2010, 2014, 2008 인 데이터를 찾는다.

 

아래는 실행 화면이다.

*코드 실행화면

 

 

 

 

between 과 마찬가지로 in 역시 반대되는 개념의 not을 사용할 수 있다.

 

역시 in 앞에 not을 붙여 사용한다.

 

select *
from books
where released_year not in ( 2017, 1985, 2010, 2014, 2008 ) ;

-- books 테이블에서 released_year 가 2017, 1985, 2010, 2014, 2008 이 아닌 데이터를 찾는다.

*not in 실행화면

 

 

 

댓글