MySQLランダム整数の範囲を取得

458 ワード

①直接値取り
i≦R≦jの範囲でランダム整数Rを得るには、式FLOOR(i+RAND(*(j−i+1))を用いる必要がある.
たとえば、7~12の範囲(7~12を含む)でランダムな整数を取得するには、次の文を使用します.
SELECT FLOOR(7 + (RAND() * 6));

②関数の作成
CREATE FUNCTION rand_num (
    start_num INTEGER,
    end_num INTEGER
) RETURNS INTEGER
BEGIN
    RETURN FLOOR(start_num + RAND() * (end_num - start_num + 1));
END;

たとえば、1~9の乱数を取得するには、次のように呼び出します.
select rand_num(1, 9);