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);