2021-11-30 20:42 작성
My SQL basic 메모
Table of contents
IN 연산자
IN 연산자는 임의의 값이 list의 값들과 매칭되는지를 확인한다.
value값이NULL일 경우 결과값은NULL을 반환한다.value값이 list의 어떤 값과도 일치하지 않고, list에NULL이 존재하는 경우NULL을 반환한다.
value IN (value1, value2, value3,...)
위의 식에서 value가 IN 이하의 값들 중 어느 하나와 매칭되는 경우 1(true)을 반환하고 그렇지 않으면 0(false)을 반환한다.
SELECT 2 IN (1, 2, 3);
output: 2의 값이 list 중 하나에 속하므로 true인 1일 반환한다.
| 2 IN (1,2,3) |
|---|
| 1 |
SELECT
officeCode,
city,
phone,
country
FROM
offices
WHERE
country IN ('USA' , 'France');
output: country = 'USA' OR country = 'France'과 동일한 결과를 반환한다.
| officeCode | city | phone | country |
|---|---|---|---|
| 1 | San Francisco | +1 650 219 4782 | USA |
| 2 | Boston | +1 215 837 0825 | USA |
| 3 | NYC | +1 212 555 3000 | USA |
| 4 | Paris | +33 14 723 4404 | France |
NOT IN 연산자
NOT IN 연산자는 임의의 값이 list의 어떤 값들 과도 일치하지 않을 때 어느 하나를 반환하고 그렇지 않으면 0을 반환한다. 기술적으로 아래의 값과 같다.
NOT (value = value1 OR value = value2 OR value = valu3)
SELECT 1 NOT IN (1,2,3);
output:
| 1 NOT IN (1,2,3) |
|---|
| 0 |
SELECT 0 NOT IN (1,2,3,NULL);
SELECT NULL NOT IN (1,2,3,NULL);
SELECT NULL NOT IN (1,2,3);
output: NULL
SELECT
officeCode,
city,
phone
FROM
offices
WHERE
country NOT IN ('USA' , 'France')
ORDER BY
city;
output:
| officeCode | city | phone |
|---|---|---|
| 7 | London | +44 20 7877 2041 |
| 6 | Sydney | +61 2 9264 2451 |
| 5 | Tokyo | +81 33 224 5000 |