如何在Mysql中生成固定位数的随机数
项目需要动态随机生成一些固定位数的随机数,比如8位、5位等。
之前看到的写法是像这样
ROUND(ROUND(RAND(),5)*100000)
这不是很准确,并且可能会发生。在4位数的情况下,Rand()函数是一个随机函数,取0~1(无限接近)
如果某个随机数取出来是0.05321
那么这样转换出来的是5321,只有4位。
如果能用一个函数来包装就完美了。当取值后发现位数不对时,只需填写位数即可。
以下是我的一个函数修改了,但缺点是生成的函数不能超过20位。当然,你可以改变它。
DELIMITER $$
使用`prvecard`$$
如果存在`getRand`$$则删除函数
创建`函数` getRand`(counts INTEGER) RETURNS VARCHAR(20) CHARSET utf8
BEGIN
DECLARE sTemp VARCHAR(20);
DECLARE sTempCounts INTEGER;
SET sTemp = CONCAT( ROUND(ROUND( Rand (), 计数)*(POW (10, 计数)),),),
if (char_length (sTEMP) <计数) then
SET STEMPCOUNTS = 计数- CHAR_LENGTH(sTemp);
SET sTemp = CONCAT(sTemp, RIGHT(CONCAT(POW(10,sTempCounts),),sTempCounts));
END IF;
RETURN sTemp;
END$$
DELIMITER;
我想在这里分享一下如何生成固定数字的随机数mysql。希望以上内容能够对大家有所帮助。在帮助下,您可以了解更多信息。如果您觉得文章不错,可以分享出去,让更多的人看到。
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何在Mysql中生成固定位数的随机数