mysql的rand函数-阿里云开发者社区

开发者社区> wensongyu> 正文

mysql的rand函数

简介: 项目中需要动态随机生成一些固定位数的随机数,如8位,5位等。 之前看到的写法是这样  ROUND(ROUND(RAND(),5)*100000) 这样写不太准确,有几率出现4位的情况,Rand() 函数是取  0 ~ 1(无限接近) 的随机函数 如果 某此随机数取出的 是  0.05321 那么这样转化出来的就是 5321 ,只有4位。
+关注继续查看

项目中需要动态随机生成一些固定位数的随机数,如8位,5位等。

之前看到的写法是这样

 ROUND(ROUND(RAND(),5)*100000)

这样写不太准确,有几率出现4位的情况,Rand() 函数是取  0 ~ 1(无限接近) 的随机函数

如果 某此随机数取出的 是  0.05321

那么这样转化出来的就是 5321 ,只有4位。

如果能用一个函数包装一下,取完数值后发现位数不对的时候,就补位进去就比较完美了。

下面是我改的一个函数,不过缺点是 生成的函数位数不能超过20位。当然改一改也是可以了。

DELIMITER $$

USE `prvecard`$$

DROP FUNCTION IF EXISTS `getRand`$$

CREATE DEFINER=`PECARD`@`%` 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)<counts) THEN
    
      SET sTempCounts = counts - CHAR_LENGTH(sTemp);
      SET sTemp = CONCAT(sTemp, RIGHT(CONCAT(POW(10,sTempCounts),),sTempCounts));
    END IF;
    
      RETURN sTemp;
END$$

DELIMITER ;

 

不过还得根据需要来随机

update company set  directors=round(round(rand(),2)*1000),associate=round(round(rand(),2)*1000);

 

原文来自:http://www.2cto.com/database/201107/95191.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
冬季实战营学习报告 第一期:从零到一上手玩转云服务器
这一期训练营从1月17号开始,为期5天。主要内容是了解学习阿里云的云服务(ECS) 因为提前加入了阿里云社区活动群,管理员每天都会提醒我们登录账号打卡学习,这里感谢管理员对我们的监督😊😊。
8 0
从传统银行到互联网,异地多活难不难?(2)
从传统银行到互联网,异地多活难不难?(2)
3 0
冬季实战营第一期:从零到一上手玩转云服务器-体验报告
本期主要实践以下内容: 1.初步认识ECS云服务器,能够体验到登陆ECS服务器,登陆控制台,管理ECS等操作。 2.使用ECS云服务器搭建LAMP环境,其中LAMP是指Linux、Apache、MySQL、PHP。 3.使用ECS云服务器MySQL数据库,并通过DMS数据管理服务远程访问MySQL数据库。 4.使用PolarDB云数据库+ECS搭建门户网站,通过之前所学LAMP架构讲MySQL替换为PolarDB云数据库并部署门户网站。
9 0
原来使用PolarDB和ECS搭建门户网站并没有那么难
以前一直使用虚拟主机搭建网站,服务器就使用那些面板,一直对直接在服务器上搭建网站有些怵,跟着这个实验做,发现只需要不到十步就可以完成网站的搭建。
9 0
基于阿里云服务器安装Docker完整图文教程
基于阿里云服务器安装Docker完整图文教程
4 0
冬季实战营第一期:从零到一上手玩转云服务器(实验报告)
1、使用PolarDB和ECS搭建门户网站 - -!挖个坑,第一步以为要自己创建集群,这样的话是无法通过,子帐号鉴权不通过, 后面看YYDS资源自己就创建好了,变脑残了,都不用想怎么操作,怎么敲命令行
9 0
冬季实战营第一期体验报告
关于冬季实战营第一期:从零到一上手玩转云服务器的学习感想
8 0
从传统银行到互联网,异地多活难不难?(3)
从传统银行到互联网,异地多活难不难?(3)
4 0
+关注
374
文章
5
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载