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

MySQL에서 동일한 난수 시퀀스를 생성하는 방법

RAND( ) 함수에 정수 인자를 전달하면 해당 값이 난수 생성기의 시드(seed)로 사용됩니다. 핵심은 같은 값으로 시드를 설정할 때마다 RAND( )가 항상 동일한 순서의 난수 시퀀스를 반환한다는 점입니다.

즉, 프로그램을 여러 번 실행하거나 쿼리를 반복해도 시드 값만 동일하다면 완전히 똑같은 난수 결과를 얻을 수 있습니다. 이는 테스트 데이터 생성이나 재현 가능한 무작위 샘플링이 필요할 때 매우 유용합니다.

예제

아래 예제에서는 세 개의 RAND( ) 호출에 모두 동일한 시드 값 1을 전달했습니다. 그 결과 세 함수 모두 정확히 같은 값을 반환하는 것을 확인할 수 있습니다.

mysql> Select RAND(1), RAND(1), Rand(1);
+---------------------+---------------------+---------------------+
| RAND(1)             | RAND(1)             | Rand(1)             |
+---------------------+---------------------+---------------------+
| 0.40540353712197724 | 0.40540353712197724 | 0.40540353712197724 |
+---------------------+---------------------+---------------------+
1 row in set (0.00 sec)

참고 사항

  • 시드 인자 없이 RAND( )를 호출하면 매번 다른 난수가 생성됩니다.
  • 동일한 시드 값이라도 MySQL 버전에 따라 내부 알고리즘이 달라질 수 있으므로, 버전 간 호환성이 중요한 경우 주의해야 합니다.