MySQL에서 두 개 이상의 필드(컬럼) 중 최소값을 구하려면 LEAST() 함수를 사용하면 됩니다. LEAST() 함수는 인자로 전달된 여러 값 중 가장 작은 값을 반환하는 내장 함수로, 날짜형이나 숫자형 데이터 모두에 활용할 수 있습니다.
LEAST() 함수 기본 문법
SELECT LEAST(컬럼명1, 컬럼명2, ...N) FROM 테이블명;
예제 테이블 생성
먼저 실습에 사용할 테이블을 생성해 보겠습니다. 세 개의 날짜 컬럼을 가진 테이블을 만듭니다.
mysql> CREATE TABLE DemoTable -> ( -> Date1 date, -> Date2 date, -> Date3 date -> ); Query OK, 0 rows affected (0.54 sec)
데이터 삽입
INSERT 명령어를 사용해 테이블에 레코드를 추가합니다.
mysql> INSERT INTO DemoTable VALUES('2019-03-31','2019-01-01','2019-03-05');
Query OK, 1 row affected (0.17 sec)저장된 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> SELECT * FROM DemoTable;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+------------+------------+------------+ | Date1 | Date2 | Date3 | +------------+------------+------------+ | 2019-03-31 | 2019-01-01 | 2019-03-05 | +------------+------------+------------+ 1 row in set (0.00 sec)
LEAST() 함수로 최소값 조회하기
이제 LEAST() 함수를 사용해 세 개의 날짜 컬럼 중 가장 빠른(작은) 날짜를 조회하는 쿼리를 실행해 보겠습니다.
mysql> SELECT LEAST(Date1, Date2, Date3) FROM DemoTable;
실행 결과는 다음과 같습니다.
+----------------------------+ | LEAST(Date1,Date2,Date3) | +----------------------------+ | 2019-01-01 | +----------------------------+ 1 row in set (0.04 sec)
결과 분석
세 개의 날짜 값 중 '2019-01-01'이 가장 작은 값이므로 LEAST() 함수가 해당 값을 정확히 반환한 것을 확인할 수 있습니다.
참고 사항
- LEAST() 함수에 NULL 값이 포함되어 있으면 결과도 NULL을 반환합니다.
- GREATEST() 함수를 사용하면 반대로 여러 필드 중 최대값을 구할 수 있습니다.
- 숫자, 문자열, 날짜 등 비교 가능한 데이터 타입이라면 모두 사용할 수 있습니다.