본문 바로가기
SQL/MySQL

MySQL RAND 함수 사용법 및 범위 지정방법

by wakestand 2021. 3. 16.
반응형

MySQL에서 RAND() 함수를 사용해주면

랜덤 값을 소수 형태로 구할 수 있는데

 

RAND(시드);

시드 안에 숫자를 넣어주면

랜덤 값이 특정 값으로 고정되어 나오게 된다

 

즉 RAND()를 사용 시 매번 다른 값이 나오지만

RAND(시드) 사용 시에는 같은 값이 계속 나온다

 

다음으로 RAND 값을 이용해 INT 형태의 값을 구하거나

특정 범위의 값만 뽑아오려면 

소수점을 모두 버려주는 FLOOR를 사용해주면 되는데

 

FLOOR(RAND() * 범위)

범위에 10을 넣으면 0~9 100을 넣으면 0~99

안의 숫자가 나오게 된다

 

마지막으로 소수에 범위를 걸어줄 경우에는

ROUND 혹은 TRUNCATE를 사용해주면 되는데

 

ROUND(RAND(), 소수자리수)

소수자리수에 1을 넣으면 소수 첫째 자리까지

2를 넣으면 둘째 자리에서 반올림 하는 식이다

 

TRUNCATE(RAND(), 소수자리수)

TRUNCATE는 소수자리수 이하를 다 버리기 때문에

 

ROUND와 TRUNCATE를 사용해주면

소수에서 범위를 건 뒤에 랜덤으로 값을 가져올 수 있게 된다

 

예제에 사용한 쿼리는 아래와 같다

 

SELECT RAND(); -- 랜덤값

SELECT RAND(2); -- 시드를 넣은 랜덤값(시드 넣으면 특정값 고정됨)

SELECT FLOOR(RAND() * 100); -- 소수점 버려 가져오기 (0~9 범위) 

SELECT ROUND(RAND(), 2); -- 소수점 자리수에서 반올림
SELECT TRUNCATE(RAND(), 2); -- 소수점 자리수 이하로 다 버리기
반응형

댓글