文档章节

SQL -- 产生随机数

求是科技
 求是科技
发布于 2016/07/25 16:12
字数 380
阅读 146
收藏 0

mysql产生随机数的方法RAND()
RAND() 产生0~1之间的随机数,例如

输入图片说明

在mysql中,当处理数值时,例如:存在一个float型数值3.86,如果我们只想取整数部分,则可以使用mysql的floor函数。例如

输入图片说明

现在工程需求产生一个17位纯数字char型数据,分析如下
1>17位的纯数字范围10000000000000000~99999999999999999
2>产生一个0~1之间的随机数,如:0.12345678901234567
3>我们取上述随机数的临界值,即0或者1,则17位随机数的范围0~99999999999999999
4>我们要保证位数为17位,因此低临界值的最小数据应该是10000000000000000
5>很容易想到SQL应该这么写,得到的结果如下

select 10000000000000000 + RAND()*(99999999999999999-10000000000000000)

输入图片说明
6>取整数部分,SQL如下

SELECT FLOOR(10000000000000000+RAND()*(99999999999999999-10000000000000000))

结果图如下

输入图片说明
7>很明显,在mysql中,17位的纯数字肯定不能为int,如上工程,我设置为char型,第6>中得出的数据如果直接插入到数据库表中,则会出现 4.045002932702194e16 这种数据,因此我们需要将其转换成char型,采用字符串拼接函数,SQL如下

SELECT CONCAT(FLOOR(10000000000000000+RAND()*(99999999999999999-10000000000000000)),'')

输入图片说明
8>总结:需要产生X位的随机数的算法

SELECT FLOOR(X位数据的最小值+RAND()*(X位数据的最大值-X位数据的最小值))

注意:如果X的位数大于11,则需要按照如上将数据由int转成char型。

© 著作权归作者所有

求是科技

求是科技

粉丝 100
博文 455
码字总数 238818
作品 0
成都
后端工程师
私信 提问
【译】使用SQL生成非均匀随机数

正如”随机数的生成过程非常重要因此我们不能对其视而不见”(引自Robert R -橡树岭国家实验室),我们希望占用您一点点宝贵的时间在基于SQL Server MVP Jeff Moden的成果的基础上完成这项工作。...

范大脚脚
2017/12/21
0
0
怎么一步步编写简单的PHP的Framework(十四)

今天我说一下怎么在框架中over掉这些安全问题。 首先是SQL注入,这个如果你使用的是PDO,我觉得应该没什么问题,如果你使用的还是mysql_*等API,那么你可以在框架中实现bindParameter或者在插...

阳光test
2012/12/06
752
2
C语言产生随机数

数学上产生的是伪随机数,真正产生随机数的是物理上的。 要想产生随机数那么每次产生的随机数都不同,那么随机数种子每次就要不同才行。 srand(unsigned int seed); //产生随机数种子 常用t...

天才的实力
2014/11/26
0
0
Python 随机数标准库(1) -- random()

Python random包可以用来生成随机数。随机数不仅可以用于数学用途,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。如果想要更加高级的数学功能,可以考虑选择标准库之外的n...

达闻西
2016/06/02
0
0
【C++】srand及rand函数

PS:是在数据挖掘实验中遇到的 摘自:【http://blog.csdn.net/candyliuxj/article/details/4396666】--candyliuxj rand 函数名: rand 功 能: 随机数发生器 用 法: int rand(void); 所在头文件...

Zoe_2016
2016/11/22
19
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud Alibaba 实战(二) - 关于Spring Boot你不可不知道的实情

0 相关源码 1 什么是Spring Boot 一个快速开发的脚手架 作用 快速创建独立的、生产级的基于Spring的应用程序 特性 无需部署WAR文件 提供starter简化配置 尽可能自动配置Spring以及第三方库 ...

JavaEdge
今天
7
0
TensorFlow 机器学习秘籍中文第二版(初稿)

TensorFlow 入门 介绍 TensorFlow 如何工作 声明变量和张量 使用占位符和变量 使用矩阵 声明操作符 实现激活函数 使用数据源 其他资源 TensorFlow 的方式 介绍 计算图中的操作 对嵌套操作分层...

ApacheCN_飞龙
今天
7
0
五、Java设计模式之迪米特原则

定义:一个对象应该对其他对象保持最小的了解,又叫最小知道原则 尽量降低类与类之间的耦合 优点:降低类之间的耦合 强调只和朋友交流,不和陌生人说话 朋友:出现在成员变量、方法的输入、输...

东风破2019
昨天
23
0
jvm虚拟机结构

1:jvm可操作数据类型分为原始类型和引用类型,因此存在原始值和引用值被应用在赋值,参数,返回和运算操作中,jvm希望在运行时 明确变量的类型,即编译器编译成class文件需要对变量进行类型...

xpp_ba
昨天
5
0
聊聊nacos Service的processClientBeat

序 本文主要研究一下nacos Service的processClientBeat Service.processClientBeat nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/core/Service.java public class Service ex......

go4it
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部