MySQL의 비교연산자를 사용하는 ANY와 ALL을 알아보자.

https://computer-science-student.tistory.com/631

ANY 함수

컬럼명 비교연산자 ANY(값들 혹은 서브쿼리)

여러개의 비교값 중 하나라도 만족하면 true 를 반환한다.

IN 과 다른점은 비교 연산자를 사용한다는 점

비교 연산자와 ANY

> ANY 최소값보다 크면
>= ANY 최소값보다 크거나 같으면
< ANY 최대값보다 작으면
<= ANY 최대값보다 작거나 같으면
= ANY IN과 같은 기능
= ANY NOT IN과 같은 기능

Example

# 서브 쿼리의 AGE 중 최소값보다 큰 AGE를 가진 데이터 조회
SELECT *
FROM TEST
WHERE AGE > ANY(SELECT AGE FROM TEST WHERE ADDR='서울');

# AGE가 20보다 큰 데이터 조회
SELECT *
FROM TEST
WHERE AGE > ANY(20, 22, 31);

ALL 함수

컬럼명 비교연산자 ALL(값들 혹은 서브쿼리)

전체 값을 비교해서 모두 만족해야 true 반환한다.

비교 연산자와 ALL

> ALL 최대값보다 크면
>= ALL 최대값보다 크거나 같으면
< ALL 최소값보다 작으면
<= ALL 최소값보다 작거나 같으면
= ALL 서브 쿼리의 결과가 1건이면 괜찮지만 여러 건이면 오류가 발생
!= ALL 서브 쿼리의 결과가 1건이면 괜찮지만 여러 건이면 오류가 발생

Example

# 서브 쿼리의 AGE 중 최대값보다 큰 AGE를 가진 데이터 조회
SELECT *
FROM TEST
WHERE AGE > ALL(SELECT AGE FROM TEST WHERE ADDR='서울');

# AGE가 31보다 큰 데이터 조회
SELECT *
FROM TEST
WHERE AGE > ALL(20, 22, 31);