mysql获取随机数据的方法
发布时间:2024-01-14 03:30:21
标签:mysql,随机数据
1.order by rand()
数据多了极慢,随机性非常好,适合非常小数据量的情况。
SELECT * FROM table_name AS r1 JOIN (SELECT (ROUND(RAND() * (SELECT ABS(MAX(id)-MIN(id)-$limit) FROM table_name))+(SELECT MIN(id) from table_name)) AS id) AS r2 WHERE r1.id >= r2.id ORDER BY r1.id ASC LIMIT $limit;
速度非常快,但是得到的数据是id连续的,没办法解决。
子查询产生一个随机数。
rand()是0到1的随机数,可以等于0到1。
MAX(id)-MIN(id)还要要减去$limit以免结果数量不够$limit条
因为主表id可能不连续,所以r1.id要>=r2.id
还要注意的是有时候最小id不是从1开始的,可能从一个很大的数开始,所以必须加上M(id)的值
手册相关内容:若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1))。
例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机整数, 可使用以下语句:
SELECT FLOOR(7 + (RAND() * 6));
select * from test where rand()>0.0005 limit 10;
0.0005是一个计算出的比例直接关系到随机的质量,比如数据表10000条数据,需要随机取300条,那么0.0005就需要改成(300/10000=0.03)。
这种方法不能保证每次能取到多少,需要取多次。
2和3速度一样的快,主要区别是2总能返回limit条数据,3就没准了(符合正太分布)。2是连续数据,3是随机行。
0
投稿
猜你喜欢
- 最近遇到了一个下载静态html报表的需求,需要以提供压缩包的形式完成下载功能,实现的过程中发现相关文档非常杂,故总结一下自己的实现。开发环境
- python3.8新功能相关文章Python 3.8 新功能大揭秘【新手必学】 Python 3.8 新功能来一波(大部分人都不知
- adfuller函数返回值的参数说明from statsmodels.tsa.stattools import adfullert = ad
- Math.abs(x):可返回数的绝对值Math.ceil(x):向上取整Math.floor(x):向下取整Math.max(x,y):最
- 在JavaScript中,我们应该尽可能的用局部变量来代替全局变量,这句话所有人都知道,可是这句话是谁先说的?为什么要这么做?有什么根据么?
- 目录全局中间件应用中间件路由中间件控制器中间件中间件传参6.0中间件分为系统中间件和应用中间件,系统中间件为核心框架内置的中间件,应用中间件
- 0.环境需要1.准备Linux环境(系统:CentOS7)2.准备MySQL安装包(版本:8.0.20)3.安装方式为:msyql解压安装1
- 引言接上文 parseHTML 函数源码解析 start钩子函数接下来我们主要讲解当解析器遇到一个文本节点时会如何为
- python配置matlab库1、确认配置版本matlab与python有相互对应的版本,需要两者版本兼容。如不兼容,需要调整matlab版
- 前言 不知道从什么时候开始有了写博客的想法,奈何自己的知识储备还很薄弱,迟迟无法下笔。这是我的第一篇博客,算是记录一下自己学习前
- 之前用Vue+element写了一个后台管理系统,在登录时使用axios请求数据传参时无法正常的获取数据。之后也是一通百度,发现原因是传递参
- 1.思路在网上查找了半天,基本都是提取word中文字的,没有找到可以把word中的图片提取出来的方法。一个巧合的情况下,发现将word的后缀
- 描述符(descriptor)是实现了__get__、__set__、__del__方法的类,进一步可以细分为两类:数据描述符:实现了__g
- 处理多个数据和多文件时,使用for循环的速度非常慢,此时需要用多线程来加速运行进度,常用的模块为multiprocess和joblib,下面
- 对于注入而言,错误提示是极其重要。所谓错误提示是指和正确页面不同的结果反馈,高手是很重视这个一点的,这对于注入点的精准判断至关重要。本问讨论
- 一、简介我们在这里采用Python中的matplotlib来实现曲线图形的绘制。matplotlib是著名的python绘图库,它提供了一整
- 前言在实际应用中经常会用到固定字段的长度,但往往有些数据不能达到规定的长度,这是就需要我们用其他的字符来填充, 在Oracle中有函数解决这
- 并发是一个很酷的话题,一旦你掌握了它,就会成为一笔巨大的财富。说实话,我一开始很害怕写这篇文章,因为我自己直到最近才对并发性不太适应。我已经
- 本文实例为大家分享了python画环形图的具体代码,供大家参考,具体内容如下import osimport pandas as pdimpo
- 本文实现了用Python和OpenCV配合,调用本地摄像头采集视频,基本上函数的话看opencv的官方文档就Ok了(The OpenCV R