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

MySQL에서 숫자를 최대값으로 제한하는 방법 – LEAST() 함수 활용법

MySQL에서 특정 컬럼의 숫자 값이 지정한 최대값을 초과하지 않도록 제한하고 싶다면 LEAST() 함수를 사용하면 됩니다. LEAST()는 전달된 여러 값 중 가장 작은 값을 반환하기 때문에, 컬럼 값과 원하는 최대값을 함께 넘기면 자동으로 상한선이 적용됩니다.

LEAST() 기본 문법

select least(yourColumnName, yourMaxValue) from yourTableName;

이제 실제 예제를 통해 동작 방식을 살펴보겠습니다.

1. 테이블 생성

먼저 테스트용 테이블을 생성합니다.

mysql> create table DemoTable
    -> (
    -> Number int
    -> );
Query OK, 0 rows affected (0.64 sec)

2. 데이터 삽입

INSERT 명령을 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable values(50);
Query OK, 1 row affected (0.11 sec)

mysql> insert into DemoTable values(40);
Query OK, 1 row affected (0.17 sec)

mysql> insert into DemoTable values(30);
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable values(201);
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable values(60);
Query OK, 1 row affected (0.17 sec)

3. 전체 데이터 조회

SELECT 문으로 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

출력 결과

+--------+
| Number |
+--------+
| 50     |
| 40     |
| 30     |
| 201    |
| 60     |
+--------+
5 rows in set (0.00 sec)

4. LEAST()로 최대값 제한 적용

아래 쿼리는 모든 숫자를 최대값 40으로 제한합니다. 40보다 큰 값(50, 201, 60)은 모두 40으로 반환되고, 40 이하인 값(30)은 원래 값 그대로 유지됩니다.

mysql> select least(Number,40) from DemoTable;

출력 결과

+------------------+
| least(Number,40) |
+------------------+
| 40               |
| 40               |
| 30               |
| 40               |
| 40               |
+------------------+
5 rows in set (0.02 sec)

참고: GREATEST()로 최소값 제한하기

반대로 숫자가 특정 최소값 미만으로 내려가지 않도록 하려면 GREATEST() 함수를 사용하면 됩니다. 예를 들어 select greatest(Number, 10) from DemoTable;처럼 작성하면 10보다 작은 값은 모두 10으로 반환됩니다.

이처럼 LEAST()와 GREATEST()를 활용하면 별도의 조건문 없이 간단하게 숫자 값의 상한과 하한을 손쉽게 제어할 수 있습니다.