복붙노트

[SQL] MYSQL을 사용하여 난수를 생성

SQL

MYSQL을 사용하여 난수를 생성

나는 선택 쿼리와 함께 100과 500 사이에서 무작위로 생성 된 번호를 선택하는 방법이 알고 싶습니다.

예 : SELECT 이름, 주소, 사용자의 RANDOM_NUMBER

나는 목적을 표시하는 데 사용하는 DB에 만이 번호를 저장하는 데 필요 없다.

나는이 같은 시도하지만 동작하지 않습니다 ..

SELECT name, address, FLOOR(RAND() * 500) AS random_number FROM users

희망 누군가의 도움 날. 감사합니다

해결법

  1. ==============================

    1.이것은 당신이 원하는 것을 제공해야합니다 :

    이것은 당신이 원하는 것을 제공해야합니다 :

    FLOOR(RAND() * 401) + 100
    

    일반적으로, FLOOR (RAND () * (<최대> - <분> + 1)) + <분> <분> 및 <최대>까지의 숫자를 생성한다.

    최신 정보

    이 전체 문장은 작동합니다 :

    SELECT name, address, FLOOR(RAND() * 401) + 100 AS `random_number` 
    FROM users
    
  2. ==============================

    2.RAND은 숫자 0 <생산으로 = V <1.0 (설명서를 참조하십시오) 당신은 상단 (이 경우 500)를 결합 및 하부 (이 경우 100) 바인딩받을 수 있도록 ROUND를 사용할 필요가

    RAND은 숫자 0 <생산으로 = V <1.0 (설명서를 참조하십시오) 당신은 상단 (이 경우 500)를 결합 및 하부 (이 경우 100) 바인딩받을 수 있도록 ROUND를 사용할 필요가

    그래서 당신이 필요로하는 범위를 생산합니다 :

    SELECT name, address, ROUND(100.0 + 400.0 * RAND()) AS random_number
    FROM users
    
  3. ==============================

    3.이 답변에 추가, 같은 함수를 만들

    이 답변에 추가, 같은 함수를 만들

    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 사이의 임의의 숫자를 제공합니다

  4. ==============================

    4.당신은 당신이 당신이 어느 정도 임시 테이블에 저장해야합니다 같은 임의의 숫자를 반복 할 필요가 없습니다 그러나 경우 (n은 정수) randnum 등의 임의의 숫자 사용 FLOOR (RAND () * N)를 만들 수 있습니다. 어디 randnum하지에서와 대조를 확인할 수 있습니다 (* TEMPTABLE에서 선택) ...

    당신은 당신이 당신이 어느 정도 임시 테이블에 저장해야합니다 같은 임의의 숫자를 반복 할 필요가 없습니다 그러나 경우 (n은 정수) randnum 등의 임의의 숫자 사용 FLOOR (RAND () * N)를 만들 수 있습니다. 어디 randnum하지에서와 대조를 확인할 수 있습니다 (* TEMPTABLE에서 선택) ...

  5. ==============================

    5.이 모두 잘 노력하고 있습니다 :

    이 모두 잘 노력하고 있습니다 :

    select round(<maxNumber>*rand())
    
    FLOOR(RAND() * (<max> - <min> + 1)) + <min> // generates a number
    between <min> and <max> inclusive.
    
  6. ==============================

    6.이것은 정확한 수식 J I <= R <= i에서 j까지의 정수를 찾는 것이다

    이것은 정확한 수식 J I <= R <= i에서 j까지의 정수를 찾는 것이다

    FLOOR(min+RAND()*(max-min))
    
  7. from https://stackoverflow.com/questions/14798640/creating-a-random-number-using-mysql by cc-by-sa and MIT license