개발이야기/MySQL

[MySQL] WHERE IN 검색, 다중 컬럼, 서브쿼리 사용법/예제

후린개발자 2023. 5. 10.
반응형

WHERE IN 절을 사용하여 여러 값 중 하나를 검색할 수 있습니다. WHERE IN 절은 주어진 값 집합 중 하나와 일치하는 레코드를 검색하고, 여러 값을 검색할 때 유용합니다.

 

사용방법

SELECT column1, column2, ...
FROM table_name
WHERE column_name IN (value1, value2, ...);

예제

select * from test_db;

테이블 정보

 

select * from test_db where user in ('hoo', 'hoo2');

위의 예제는 IN 조건으로 user가 hoo, hoo2 중 하나인 레코드를 검색합니다.

 

IN 조건 hoo, hoo2 만 검색

 

select * from test_db where user not in ('hoo', 'hoo2');

NOT IN 조건을 사용하여 user가 hoo, hoo2 아닌 레코드를 검색합니다.

 

NOT IN 조건 hoo, hoo2 제외

 

select * from test_db a where user in (select user from test_db_copy where a.user=user);

위의 쿼리는 IN 구문에 서브쿼리를 작성하여 다른 쿼리 결과로 결과를 선택 할 수 있습니다. 서브쿼리가 반환한 결과 중 일치하는 결과가 선택 됩니다. 위는 동일한 조건으로 인해 전체 DATA 가 출력 됩니다.

 

select * from test_db a where user in (select user from test_db_copy b where b.group = 'A');

위의 쿼리는 서브쿼리 조건인 group가 A 인 DATA 가 출력 됩니다.

 

서브쿼리 결과중 일치하는 결과

 

SELECT * FROM test_db a WHERE (a.user, a.group) IN (('test2', 'B'), ('test3', 'C'), ('hoo', 'A'));

위는 IN 조건으로 다중컬럼을 검색하는 쿼리 입니다. 다중 열을 검색할 때 각 열을 괄호로 묶어서 각각의 값의 집합을 지정해주면 됩니다.

 

다중조건에 맞는 결과

 

반응형

댓글

💲 추천 글