MariaDB in 연산자를 사용하여 값 목록과 값을 일치시키는 방법을 배웁니다.
MariaDB in 연산자의 소개
MariaDB in은 값을 값 목록과 비교하는 논리 연산자입니다.
expression IN (v1, v2, v3, ...)
in 연산자는 식이 목록의 값(예: v1, v2, v3 등)과 일치하는 경우 true를 반환합니다.
값 목록은 리터럴 값의 쉼표로 구분된 목록이거나 다른 select 문의 결과 집합일 수 있습니다.
expression in (select-statement)
괄호 안의 select 문은 한 열의 값 목록을 반환해야 합니다. 그렇지 않으면 쿼리에서 오류가 발생합니다.
논리적으로 in 연산자는 다음 식과 동일합니다.
expression = v1 or
expression = v2 or
expression = v3 or
...
따라서 다중 or 연산자가 있는 식을 in 연산자로 대체하여 코드를 더 깔끔하게 만들 수 있습니다.
not in 연산자
not 연산자는 in 연산자를 부정합니다.
expression NOT IN (v1, v2, v3, ...)
이것은 다음 표현의 syntactic sugar(더욱 더 간결하고 명확하게 표현이 가능한 문법) 입니다.
expression <> v1 AND
expression <> v2 AND
expression <> v3 AND
...
in 연산자는 종종 select, delete 및 update 문의 where 절에서 사용됩니다.
MariaDB in 연산자의 예제
국가 샘플 데이터베이스의 국가 테이블을 사용하여 in 연산자를 시연합니다.
1) 숫자 값 목록과 함께 MariaDB in 연산자 사용
다음 예에서는 in 연산자를 사용하여 지역 ID가 1, 2 및 3 목록에 있는 국가를 찾습니다.
select
name, region_id
from
countries
where
region_id in (1,2,3)
order by name;
다음 쿼리와 동일합니다.
select
name, region_id
from
countries
where
region_id = 1 or
region_id = 2 or
region_id = 3
order by name;
2) select 문과 함께 MariaDB in 연산자 사용
다음 문은 아시아 지역의 지역 ID 목록을 반환합니다.
select
region_id
from
regions
where
name like '%Asia%';
다음 쿼리와 같이 반환된 id 목록을 in 연산자의 입력으로 사용할 수 있습니다.
select
name, region_id
from
countries
where
region_id in (
select
region_id
from
regions
where
name like '%Asia%'
)
order by name;
이상으로 MariaDB in 연산자를 사용하여 값 목록과 값을 일치시키는 방법을 알아봤습니다.
※ 원문출처 : https://www.mariadbtutorial.com/mariadb-basics/mariadb-in/
'MariaDB SQL' 카테고리의 다른 글
MariaDB Is Null (0) | 2023.06.05 |
---|---|
MariaDB Limit (0) | 2023.05.30 |
가로 데이터를 세로 데이터로 변환해보자 (0) | 2023.05.24 |
MariaDB Like (0) | 2023.05.23 |
MariaDB Between (0) | 2023.05.22 |