MySQL獲取隨機數

2021-09-06 22:26:40 字數 653 閱讀 1580

如何通過mysql在某個資料區間獲取隨機數?

mysql本身提供乙個叫rand的函式,返回的v範圍為0 <= v < 1.0。

介紹此函式的mysql文件也介紹道,可以通過此計算公式floor(i + rand() * (j – i)),獲取i <= v < j的隨機數字v。

為了書寫、呼叫方便,寫乙個函式返回隨機數字,注意,此函式為了遵應個人習慣,是使用floor(i + rand() * (j – i + 1))這樣的公式,隨機數v的範圍為i <= v <= j,而非i <= v < j。

create

function

rand_num (

start_num

integer

, end_num

integer

) returns

integer

begin

return

floor(start_num +

rand() * (end_num - start_num +

1));

end;

view code

比如,要獲取1-9的隨機數,如此呼叫即可:

select rand_num(1, 9);
view code

獲取隨機數

c 中提供了隨機數函式rand 但是這個函式其實提供的數字是有限的,大概是0 32767,所以這就導致了兩個問題 1 獲取的的數字並不是隨機的,比如要取0 99的隨機數,那麼一般就是rand 100,由於32767 100 67,所以0 67的數字獲得到的次數會比68 99多一次。2 無法獲取到比3...

php 獲取隨機數

獲得最小和最大值之間隨機數,位數不足補零 function getrandnumber fmin fmax fileid date ymd his rand 100,999 fileid為 20100903 132121 908 這樣的的隨機數 function randomkeys length ...

Linux 獲取隨機數

偽隨機法 偽隨機法就是通過乙個確定性的演算法來獲取看似隨機或者亂序,在計算偽隨機序列時,如果使用的開始值不變化的,實際上獲取到的隨機序列的值順序是保持不變。例如在c中比較常用的隨機函式rand 是比較典型的偽隨機法。在呼叫rand 函式時,沒有顯示的呼叫srand 函式來設定隨機序列開始種子的話,預...