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

MySQL에서 두 값 사이의 임의의 값(난수) 구하는 방법

MySQL에서 두 값 사이의 난수 생성하기

MySQL에서 두 값 사이의 임의의 값(난수)을 얻으려면 RAND() 함수와 FLOOR() 함수를 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.

select FLOOR( RAND() * (최댓값 - 최솟값) + 최솟값) as 별칭;

동작 원리

RAND()는 0 이상 1 미만의 실수를 반환하며, 여기에 원하는 범위의 크기를 곱하고 최솟값을 더한 뒤 FLOOR()로 소수점을 버리면 지정된 범위 내의 정수 난수가 생성됩니다.

예제: 100부터 200 사이의 난수 구하기

최댓값을 200, 최솟값을 100으로 설정해 보겠습니다. 이 경우 생성되는 난수는 100과 200 자신을 포함하여 그 사이의 값이 됩니다.

쿼리는 다음과 같습니다.

mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;

실행 결과는 다음과 같습니다.

+-------------+
| RandomValue |
+-------------+
| 144         |
+-------------+
1 row in set (0.00 sec)

실행할 때마다 다른 결과 확인

같은 쿼리를 다시 실행하면 매번 다른 값이 출력됩니다.

mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;

앞서 설정한 범위 내에서 무작위로 값이 선택되기 때문에 아래와 같이 다른 결과가 나타납니다.

+-------------+
| RandomValue |
+-------------+
| 184         |
+-------------+
1 row in set (0.00 sec)

정리

이처럼 FLOOR(RAND() * (최댓값 - 최솟값) + 최솟값) 공식을 활용하면 MySQL에서 원하는 범위의 정수 난수를 간단하게 생성할 수 있습니다. 테스트 데이터 생성, 샘플링 등 다양한 상황에서 유용하게 활용할 수 있습니다.