溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

mysql如何生成指定位數(shù)的隨機(jī)數(shù)及批量生成隨機(jī)數(shù)

發(fā)布時(shí)間:2021-07-29 11:40:16 來(lái)源:億速云 閱讀:326 作者:小新 欄目:MySQL數(shù)據(jù)庫(kù)

小編給大家分享一下mysql如何生成指定位數(shù)的隨機(jī)數(shù)及批量生成隨機(jī)數(shù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1. 先介紹幾個(gè)常用的 MySQL 函數(shù)

RAND()    隨機(jī)生成 0~1 之間的小數(shù)(0<1)

mysql如何生成指定位數(shù)的隨機(jī)數(shù)及批量生成隨機(jī)數(shù)

CEILING    向上取整
FLOOR    向下取整

mysql如何生成指定位數(shù)的隨機(jī)數(shù)及批量生成隨機(jī)數(shù)

2. 生成隨機(jī)數(shù)

-- 生成 3 位的隨機(jī)數(shù)
SELECT CEILING(RAND()*900+100);
-- 生成 4 位的隨機(jī)數(shù)
SELECT CEILING(RAND()*9000+1000);
-- 生成 5 位的隨機(jī)數(shù)
SELECT CEILING(RAND()*90000+10000);
...

示例:

mysql如何生成指定位數(shù)的隨機(jī)數(shù)及批量生成隨機(jī)數(shù)

 解釋一下:

-- 生成 0~1 之間的隨機(jī)小數(shù)
0 < RAND() <1

-- 乘以 9000,變成 0~9000 之間隨機(jī)小數(shù)
0 < RAND*9000 < 9000

-- 加上 1000,變成 0~10000 之間的隨機(jī)小數(shù)
0 < RAND*9000+1000 < 10000

-- 使用 CEILING 函數(shù)向上取整,去掉后面的小數(shù),得到一個(gè)整數(shù)
-- 或使用 FLOOR 函數(shù)向下取整,都可以
CEILING(RAND()*9000+1000)
-- 或
FLOOR(RAND()*9000+1000)

3. 注意

這種生成指定位數(shù)隨機(jī)數(shù)的方式還不是特別好,因?yàn)榇嬖谥貜?fù)的可能。隨機(jī)數(shù)的位數(shù)越少,重復(fù)的概率越大。所以這種方式只能在特殊場(chǎng)合有些作用。

mysql批量生成隨機(jī)數(shù)

假數(shù)據(jù):

update exercise_data set star_num=FLOOR(1 + (RAND() * 5));

rand函數(shù)隨機(jī)生成0到1的隨機(jī)數(shù),乘以5即可得到1-5的隨機(jī)數(shù),floor是的到上一個(gè)整數(shù)。

以上是“mysql如何生成指定位數(shù)的隨機(jī)數(shù)及批量生成隨機(jī)數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI