新聞中心
這篇文章將為大家詳細(xì)講解有關(guān)MySQL 中怎么生成固定位數(shù)的隨機(jī)數(shù),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)專注于鄒平企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都做商城網(wǎng)站。鄒平網(wǎng)站建設(shè)公司,為鄒平等地區(qū)提供建站服務(wù)。全流程專業(yè)公司,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
項(xiàng)目中需要?jiǎng)討B(tài)隨機(jī)生成一些固定位數(shù)的隨機(jī)數(shù),如8位,5位等。
之前看到的寫法是這樣
ROUND(ROUND(RAND(),5)*100000)
這樣寫不太準(zhǔn)確,有幾率出現(xiàn)4位的情況,Rand() 函數(shù)是取 0 ~ 1(無限接近) 的隨機(jī)函數(shù)
如果 某此隨機(jī)數(shù)取出的 是 0.05321
那么這樣轉(zhuǎn)化出來的就是 5321 ,只有4位。
如果能用一個(gè)函數(shù)包裝一下,取完數(shù)值后發(fā)現(xiàn)位數(shù)不對(duì)的時(shí)候,就補(bǔ)位進(jìn)去就比較完美了。
下面是我改的一個(gè)函數(shù),不過缺點(diǎn)是 生成的函數(shù)位數(shù)不能超過20位。當(dāng)然改一改也是可以了。
DELIMITER $$
USE `prvecard`$$
DROP FUNCTION IF EXISTS `getRand`$$
CREATE ` FUNCTION `getRand`(counts INTEGER) RETURNS VARCHAR(20) CHARSET utf8
BEGIN
DECLARE sTemp VARCHAR(20);
DECLARE sTempCounts INTEGER;
SET sTemp = CONCAT( ROUND(ROUND(RAND(),counts)*(POW(10,counts))),);
IF(CHAR_LENGTH(sTemp)
SET sTempCounts = counts - CHAR_LENGTH(sTemp);
SET sTemp = CONCAT(sTemp, RIGHT(CONCAT(POW(10,sTempCounts),),sTempCounts));
END IF;
RETURN sTemp;
END$$
DELIMITER ;
關(guān)于Mysql 中怎么生成固定位數(shù)的隨機(jī)數(shù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
分享題目:Mysql中怎么生成固定位數(shù)的隨機(jī)數(shù)
分享網(wǎng)址:http://ef60e0e.cn/article/pogijj.html