公式如下:

rand() * (y-x) + x

咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数。

而在mysql里,随机数函数rand不能传参,产生的0到1之间的浮点数,要是我们需要在mysql产生大于1的随机整数,该怎么办呢?

这样的需求并不陌生,例如,咱做的文章系统,需要作弊,给文章的浏览量随机加上某个范围内的整数。

现在,假设需要产生234到5678之间的随机整数,mysql下怎么实现。

我们无法改mysql下rand的产生值,但我们可以改变我们的需求,

1、我们需要最小是234,最大是5678,rand产生的最小是0,最大是1,我们需求的数减去234看看?

最小数234 - 234 = 0,最大数5678 - 234 = 5444;嘿,亮点,我们需求的最小数跟rand产生的最小吻合了。

我们只要让函数产生0到5444的随机数,再拿来加上234,就是我们原需求了。

我们原需求用个伪表达式来描述,就会是

取整(rand(0,5444) + 234)

2、现在只要想办法将我们需求再变一下,使得最小数为0 不变,最大数变化成1,

很明显,5444减去5443就是1了,但这样,最小数就会是负数了。

要最小数还是0,最大数是1,太简单,5444 / 5444 = 1 , 0 /5444 = 0

现在,原需求的伪表达式就是:

取整(rand(0,1) * 5444 + 234)

3、把伪表达式的参数去掉,就跟mysql下的rand一样写法,一样效果。取整函数我们使用四舍五入ROUND

所以,我们原需求的最终真mysql表达式就是

ROUND(RAND() * 5444 + 234)

总结一下思路:

1、比较rand(x, y)与rand(0,1)的差异。

2、将rand(x,y)逐步向rand(0,1)变换

rand(x,y)

= rand(0, (y-x)) + x

= rand(0/(y-x), (y-x)/(y-x)) * (y-x) +x

= rand() * (y-x) + x

这是一个很简单的数学算术式,用一个简单的例子,说了一下一些算法的基本技巧:降低要求使得自己所掌握的知识能达到需求。

您可能感兴趣的文章:MySQL查询随机数据的4种方法和性能对比

从MySQL数据库表中取出随机数据的代码

mysql获取随机数据的方法

mysql优化取随机数据慢的方法

mysql 某字段插入随机数(插入随机数到MySQL数据库)

详解MySQL中concat函数的用法(连接字符串)

Python连接MySQL并使用fetchall()方法过滤特殊字符

sqlserver、mysql获取连接字符串步骤

PHP 设置MySQL连接字符集的方法

MySQL产生随机数并连接字符串的方法示例

mysql rand 范围_MySQL的指定范围随机数函数rand()的使用技巧相关推荐

  1. mysql 列 随机数_MySQL的指定范围随机数函数rand()的使用技巧

    公式如下: rand() * (y-x) + x 咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数 ...

  2. MySQL集函数随机数_MySQL的指定范围随机数函数rand()的使用技巧

    公式如下: rand() * (y-x) + x 咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数 ...

  3. c mysql生成随机数函数,MySQL的指定范围随机数函数rand()的使用技巧

    公式如下: rand() * (y-x) + x 咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数 ...

  4. php随机整数rand和mt_rand,PHP随机数函数rand()与mt_rand()的讲解

    PHP随机数函数rand()与mt_rand()的讲解 PHP中rand()与mt_rand()都是用于产生一个指定范围内单独随机数的函数,如果需要产生多个不重复的随机数,请参考:PHP生成指定范围内 ...

  5. sqlserⅴer随机函数_SQL server的随机数函数rand()详解

    SQL server的随机数函数rand()详解 from:http://tieba.baidu.com/f?kz=607363268 在SQL Server中,有个随机函数rand(),有不少新手可 ...

  6. C++产生随机数函数rand()

    C++产生随机数函数rand() C++11之前没有random,生成随机数用rand(),可以配合srand()来使用.rand()不是真正的生成随机数,而是线性取余,有可能也会生成相同的数出来.生 ...

  7. c++随机数函数rand()

    c 语言rand()生成随机数 c语言中rand()函数生成随机数的用法: 详细介绍: (1)使用该函数首先应在开头包含头文件stdlib.h #include<stdlib.h>(C++ ...

  8. mysql 字符串截取_mysql数据库13种常用函数方法总结

    1.字符串拼接 SELECT CONCAT('My','S','QL') 2.字符串比较 SELECT STRCMP('abc','abd'), STRCMP('abc','abc'), STRCMP ...

  9. 【C语言】随机数函数rand和srand

    文章目录 一.随机数函数 1.rand().srand() 2.time() 二.案例实现 1.案例描述 2.代码实现 一.随机数函数 1.rand().srand() C语言产生随机数要用到的函数是 ...

  10. C语言之随机数函数( rand() )的使用方法

    文章出自个人博客https://knightyun.github.io/2018/04/25/c-rand-number,转载请申明. 在程序设计中,难免会使用到随机值函数,其原理与语法大多类似,接下 ...

最新文章

  1. 苹果曝光无人车新进展,这名华人工程师是主要贡献者
  2. centos 对某ip开放 防火墙端口_CentOS7 firewalld防火墙指定IP与端口访问
  3. 前端学习(2696):重读vue电商网站17之监听图片上传成功事件
  4. 前端学习(1887)vue之电商管理系统电商系统之通过路由的形式显示用户列表
  5. Android Images
  6. 大数据分析双剑合璧:Apache Kylin 和 Superset
  7. 2019-4(2)-数据挖掘学习笔记
  8. python按钮代码_Python QPalette.Button方法代码示例
  9. 专治数仓疑难杂症!美团点评 Flink 实时数仓应用经验分享
  10. 【大电流H桥电机驱动电路的设计与解析(包括自举电路的讲解,以IR2104+LR7843为例)】
  11. VSCode安装插件,使用本地下载vsix文件
  12. Base16,Base32,Base64编码的介绍
  13. 提高系统可用性的那些架构策略
  14. NIOS 2 软核中EPCS配置芯片的存储操作
  15. 手机怎么把几个PDF文件合并到一起?教你一分钟搞定
  16. NPOI导出Excel自动计算公式问题
  17. python opencv pdf脚本之家_Python-OpenCV
  18. 最全阿里架构师P系列解读:P5-P8的技能要求和薪资结构
  19. opencv之图像翻转、平移、缩放、旋转、仿射学习笔记
  20. 建设智能工厂建设,主要划分为哪几步?

热门文章

  1. 各种数据库中的dual表
  2. Python爬虫——使用三种方法来爬取酷狗音乐的TOP榜
  3. 国美易卡利用大数据,国美易卡衍生三大类产品模型
  4. 个体工商户属于小微企业吗_个体户属于小微企业吗?
  5. Python房贷计算器等额本息
  6. 京东2021年全渠道GMV同比增长近80% 全年营收同步增长27.6%
  7. Ansible事实变量常见fact
  8. gif透明背景动画_最好用的GIF制作手机app-GIF豆豆--手机版ae
  9. java合并果子_合并果子(经典优先队列)
  10. 混沌算法 matlab,混沌算法优化BAS算法