MySQL의 비교연산자를 사용하는 ANY와 ALL을 알아보자.
https://computer-science-student.tistory.com/631
컬럼명 비교연산자 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(값들 혹은 서브쿼리)
전체 값을 비교해서 모두 만족해야 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);