반응형
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); -- 소수점 자리수 이하로 다 버리기
반응형
'SQL > MySQL' 카테고리의 다른 글
MySQL 날짜 포맷 사용방법 정리(DATE_FORMAT) (0) | 2021.03.30 |
---|---|
MySQL 날짜 더하는 방법 빼는 방법(DATE_ADD DATE_SUB) (0) | 2021.03.29 |
MySQL 소수점 반올림 올림 내림 사용방법 정리 (0) | 2021.03.15 |
MySQL 현재 실행중인 쿼리 확인 및 강제 중단방법 (0) | 2021.03.11 |
MySQL 프로시저 함수 디버깅 하는 방법 (0) | 2021.03.10 |
댓글