본문 바로가기
SQL/MySQL

MySQL IN NOT IN 사용방법 및 예제

by wakestand 2021. 1. 22.
반응형

MySQL에서 IN은 특정 값이 들어있을 경우에만

조회하려는 경우 사용하는데

 

WHERE 컬럼명 IN ('값', '값')

WHERE 컬럼명 IN (SELECT절)

위와 같은 식으로 값을 여러개 넣어주거나

SELECT 절을 넣어 사용하게 된다

 

NOT IN은 IN과 반대로

특정 값이 들어있지 않은 값들만 조회하게 되는데

WHERE 컬럼명 NOT IN ('값', '값')

WHERE 컬럼명 NOT IN (SELECT절)

 

이런 식으로 사용하는데

IN 앞에 NOT만 붙여준다는 것만 빼면

사용법은 동일하다

 

위 예제를 보면

NAME IN ('철수', '수철') 은

NAME이 철수, 수철인 값만 출력되고

 

NAME NOT IN ('영희', '수철') 은

NAME이 영희, 수철인 값을 빼고 출력하게 된다

 

마지막으로 예제에 사용한 쿼리는 아래와 같다

 

WITH TBL AS
(
	SELECT '철수' AS NAME
	UNION ALL
	SELECT '수철' AS NAME
	UNION ALL
	SELECT '영희' AS NAME
)

-- NAME이 철수, 수철인 값만 조회
SELECT * 
  FROM TBL
 WHERE NAME IN ('철수', '수철');

-- NAME이 영희, 수철이 아닌 값만 조회
SELECT *
  FROM TBL
 WHERE NAME NOT IN ('영희', '수철');

-- IN에 SELECT문이 들어올 수 있음
SELECT * 
  FROM TBL
 WHERE NAME IN (SELECT '영희');
반응형

댓글