Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 여러 필드(컬럼)의 최소값을 조회하는 방법

네, 가능합니다. MySQL에서는 LEAST() 함수를 사용하면 여러 컬럼(필드) 값 중 가장 작은 값을 손쉽게 조회할 수 있습니다.

SELECT LEAST(yourColumnName1, yourColumnName2, ...N) FROM yourTableName;

LEAST() 함수는 인자로 전달된 두 개 이상의 값을 비교하여 그중 최소값을 반환합니다. 숫자뿐만 아니라 날짜(DATE) 타입에도 적용할 수 있어 활용 범위가 넓습니다.

1. 테이블 생성

먼저 실습에 사용할 테이블을 생성해 보겠습니다.

mysql> CREATE TABLE DemoTable
-> (
-> Date1 date,
-> Date2 date,
-> Date3 date
-> );
Query OK, 0 rows affected (0.54 sec)

2. 데이터 삽입

INSERT 명령을 사용하여 테이블에 샘플 레코드를 추가합니다.

mysql> INSERT INTO DemoTable VALUES('2019-03-31', '2019-01-01', '2019-03-05');
Query OK, 1 row affected (0.17 sec)

3. 저장된 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> SELECT *FROM DemoTable;

출력 결과

+------------+------------+------------+
| Date1 | Date2 | Date3 |
+------------+------------+------------+
| 2019-03-31 | 2019-01-01 | 2019-03-05 |
+------------+------------+------------+
1 row in set (0.00 sec)

4. 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() 함수를 사용할 때는 몇 가지 주의할 점이 있습니다.

NULL 처리: 인자 중 하나라도 NULL이 포함되어 있으면 LEAST() 함수는 NULL을 반환합니다. NULL이 있을 수 있는 컬럼이라면 IFNULL() 함수를 함께 사용하는 것이 좋습니다.

SELECT LEAST(IFNULL(Date1, '9999-12-31'), IFNULL(Date2, '9999-12-31'), IFNULL(Date3, '9999-12-31')) FROM DemoTable;

GREATEST() 함수: 반대로 여러 값 중 최대값을 구하고 싶다면 GREATEST() 함수를 사용하면 됩니다. 사용법은 LEAST()와 동일합니다.