MYSQL을 사용하여 난수 생성
선택 쿼리와 함께 랜덤으로 생성된 100에서 500 사이의 숫자를 선택하는 방법이 있는지 알고 싶습니다.
예:SELECT name, address, random_number FROM users
이 번호는 db에 저장할 필요가 없으며 표시 용도로만 사용합니다.
이런 식으로 해봤는데 작동이 안 돼요.
SELECT name, address, FLOOR(RAND() * 500) AS random_number FROM users
누가 좀 도와줬으면 좋겠다.감사합니다.
이것으로 원하는 것을 얻을 수 있습니다.
FLOOR(RAND() * 401) + 100
일반적으로는FLOOR(RAND() * (<max> - <min> + 1)) + <min>
사이의 숫자를 생성합니다.<min
> 및<max>
포괄적
갱신하다
이 전체 스테이트먼트는 기능합니다.
SELECT name, address, FLOOR(RAND() * 401) + 100 AS `random_number`
FROM users
~하듯이RAND
사용할 필요가 있는 숫자0 <= v < 1.0 (매뉴얼 참조)이 생성됩니다.ROUND
상한(이 경우 500)과 하한(이 경우 100)을 얻을 수 있도록 합니다.
필요한 범위를 작성하려면:
SELECT name, address, ROUND(100.0 + 400.0 * RAND()) AS random_number
FROM users
이 답변 외에 다음과 같은 함수를 만듭니다.
CREATE FUNCTION myrandom(
pmin INTEGER,
pmax INTEGER
)
RETURNS INTEGER(11)
DETERMINISTIC
NO SQL
SQL SECURITY DEFINER
BEGIN
RETURN floor(pmin+RAND()*(pmax-pmin));
END;
라고 부르면
SELECT myrandom(100,300);
이것은 100에서 300 사이의 난수를 제공합니다.
다음을 사용하여 난수를 생성할 수 있습니다.FLOOR(RAND() * n) as randnum
(n은 정수입니다). 단, 같은 난수를 반복할 필요가 없는 경우에는 temp 테이블에 어느 정도 저장해야 합니다.그래서 당신은 그것을 체크할 수 있습니다.where randnum not in (select * from temptable)
...
둘 다 정상적으로 동작하고 있습니다.
select round(<maxNumber>*rand())
FLOOR(RAND() * (<max> - <min> + 1)) + <min> // generates a number
between <min> and <max> inclusive.
이것은 정수를 찾기 위한 올바른 공식입니다.i
로.j
어디에i <= R <= j
FLOOR(min+RAND()*(max-min))
언급URL : https://stackoverflow.com/questions/14798640/creating-a-random-number-using-mysql
'programing' 카테고리의 다른 글
Ruby on Rails 3 소켓 '/tmp/mysql'을 통해 로컬 MySQL 서버에 연결할 수 없습니다.OSX에서 '삭 (0) | 2022.09.25 |
---|---|
C에서 extern 키워드를 올바르게 사용하는 방법 (0) | 2022.09.25 |
SSR에서 Vuex와 함께 vue-instantsearch를 사용하는 방법 (0) | 2022.09.25 |
HAVING 절의 다중 집계 함수 (0) | 2022.09.25 |
mysql db에 직렬화된 데이터를 저장할 때 사용해야 하는 열 유형을 선택하십시오. (0) | 2022.09.25 |