MariaDB SQL

MariaDB in

ssamhago 2023. 5. 25. 08:14
728x90
320x100

MariaDB in

 

 

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 연산자는 종종 selectdelete 및 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;

지역 ID가 1, 2 및 3

다음 쿼리와 동일합니다.

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

다음 쿼리와 같이 반환된 id 목록을 in 연산자의 입력으로 사용할 수 있습니다.

select
    name, region_id
from
    countries
where
    region_id in (
        select
            region_id
        from
            regions
        where
            name like '%Asia%'
    )
order by name;

아시아 나라와 id

 

 

이상으로 MariaDB in 연산자를 사용하여 값 목록과 값을 일치시키는 방법을 알아봤습니다.

 

 

 

 

※ 원문출처 : https://www.mariadbtutorial.com/mariadb-basics/mariadb-in/

728x90
반응형

'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