MySQL取得某一範圍隨機數

OldBoy~發表於2017-05-17

①直接取值

若要在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);

 

相關文章