今天做项目遇到这个问题,本来想用mysql自带的随机函数来实现,但是想到这样做功能是实现了,但是效率真的好差!一下子想不到好的方法,就去网上找了一下,记录下来,好好研究学习一下。

ID连续的情况下(注意不能带where,否则结果不好):

SELECT *

FROM `talbe` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2

WHERE t1.id >= t2.id

ORDER BY t1.id ASC LIMIT 4;

ID不连续的情况下:

SELECT * FROM `table`

WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `table`))) and a = "a" and b = b

ORDER BY id LIMIT 4;

假设你的表叫做mm_account,并且有一个字段叫id。最快的方法如下(随机获取5条):

SELECT * FROM talbe WHERE id >= ((SELECT MAX(id) FROM table)-(SELECT MIN(id) FROM table)) * RAND() + (SELECT MIN(id) FROM table) limit 5;

如果带where语句,上面就不适合了。带where语句请看下面:

SELECT *

FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (

(SELECT MAX(id) FROM `table` where id < 1000 )-(SELECT MIN(id) FROM `table` where id < 1000 ))+(SELECT MIN(id) FROM `table` where id < 1000 )) AS id) AS t2

WHERE t1.id >= t2.id

ORDER BY t1.id LIMIT 5;

mysql实现随机获取几条数据的方法

版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xionglangs/article/details/50630758sql语句有几种写法 1:SEL ...

四种数据库随机获取N条数据的方法

1.SQL Server: SELECT TOP  n  *  FROM  tableName ORDER BY NEWID(); 2.ORACLE: SELECT * FROM (SELECT * ...

mysql中随机取出几条数据

SELECT t1.id,title,extName,cover,url FROM shop_articles AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT M ...

thinkphp 随机获取一条数据

$data=$AD->field("ID,Answer,State")->limit(1)->order('rand()')->select();

MYSQL 中随机读取一条数据

SELECT * FROM res AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM res) - (SELECT MIN(id) FRO ...

laravel如何从mysql数据库中随机抽取n条数据

laravel如何从mysql数据库中随机抽取n条数据 一.总结 一句话总结: inRandomOrder():$userQuestions=UserQuestion::where($map)-&gt ...

转: 从Mysql某一表中随机读取n条数据的SQL查询语句

若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...

从Mysql某一表中随机读取n条数据的SQL查询语句

若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...

mysql使用——sql实现随机取一条数据

最近在做接口测试的时候,测试数据是从数据库查询的,但是当需要并发多次去调用接口时,如果sql只是单纯的进行了limit取值,那并发的时候肯定会每条数据都一样. 因此,研究了下sql随机取一条数据的写法 ...

随机推荐

C&num; 仿刷-框架MvcThrottle的使用

1.介绍 1)用MvcThrottle你能保护你的网站不受攻击.刷. 2)你可以限制与设置多个不同场景允许的IP,设置 每秒/分/天 允许访问IP. 3)你可以定义限制,来处理所有请求.或者某个Con ...

Python3 基本数据类型

Python中的变量不需要声明,每个变量使用前必须赋值,变量赋值后才会被创建,在Python中变量就是变量,它没有类型.我们所说的"类型"是变量所指的内存中对象的类型. 等号(=) ...

redis的安装和启动

Windows下Redis的安装及PHP扩展使用 时间 2014-10-28 17:47:09  CSDN博客 原文  http://blog.csdn.net/wyqwclsn/article/de ...

三步解决EntityFramework Code First中的MissingMethodException错误

在数据库初始化时运行OnModelCreating的方法中,有时会抛出MissingMethodException异常. 以下三步可解决大部份的出错场景: 在程序包管理器控制台中运行:Uninstal ...

MySQL存储过程解析

1.1 创建存储过程 MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]])           [charac ...

Android布局详解之一:FrameLayout

原创文章,如有转载,请注明出处:http://blog.csdn.net/yihui823/article/details/6702273 FrameLayout是最简单的布局了.所有放在布局里的 ...

tail head命令

显示1.txt的最后2行    tail -2 1.txt 显示1.txt的最后1行    tail -n 1 1.txt    tail -1 1.txt 显示1.txt的最后10行 tail 1. ...

在浏览器中打不开Oracle 11gR2的企业管理器页面

最简单的办法,重建EM 四个步骤: emca -repos drop emca -repos create emca -config dbcontrol db emctl start dbconsol ...

MYSQLI DEMO

1.Select // DEMO mysqli连接方式参考 $db = new mysqli("localhost:3306", "root", "& ...

web中静态资源和动态资源的概念及区别

1.静态资源和动态资源的概念 简单来说: 静态资源:一般客户端发送请求到web服务器,web服务器从内存在取到相应的文件,返回给客户端,客户端解析并渲染显示出来. 动态资源:一般客户端请求的动态资源, ...

mysql高效率写法_mysql高效率随机获取n条数据写法相关推荐

  1. 从Mysql某一表中随机读取n条数据的SQL查询语句

    若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...

  2. Oracle 随机获取N条数据

    Oracle 随机获取N条数据     当我们获取数据时,可能会有这样的需求,即每次从表中获取数据时,是随机获取一定的记录,而不是每次都获取一样的数据,这时我们可以采取Oracle内部一些函数,来达到 ...

  3. mysql 随机槽_mysql怎样高效率随机获取n条数据

    ID延续的情况下(注重不能带where,否则效果欠好): SELECT * FROM `mm_account` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MA ...

  4. mysql怎样高效率随机获取n条数据

    ID连续的情况下(注意不能带where,否则结果不好): SELECT * FROM `mm_account` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MA ...

  5. mysql 存储过程查询优化_mysql用存储过程插入百万条数据, 及查询优化

    查看所有存储过程: show procedure status; 查看详细存储过程 ptest: show create procedure ptest; 存储过程插入数据: create table ...

  6. mysql随机取5条数据_【转】mysql实现随机获取几条数据的方法

    sql语句有几种写法 1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要获取的数据条数: 2:SELECT *FROM `table` WHERE i ...

  7. 随机获取数据库的数据

    随机获取数据库的数据 最近的在开发自己的博客,里面有个功能需要随机推荐这个功能. 不同数据库随机获取 10 条数据 转载:https://www.cnblogs.com/gc2013/p/358079 ...

  8. laravel mysql rand_laravel如何从mysql数据库中随机抽取n条数据(高性能) - Laravel学习网...

    laravel如何高性能地从mysql数据库中随机获取n条数据,有时候我们常常会需要从数据库随机获取数据,比如:给工作人员随机分配10个订单,随机从数据库中随机抽查100个用户:这样我们就需要随机从数 ...

  9. oracle 取任意一条数据,oracle随机取一条数据详解

    Oracle 随机获取N条数据 当我们获取数据时,可能会有这样的需求,即每次从表中获取数据时,是随机获取一定的记录,而不是每次都获取一样的数据,这时我们可以采取Oracle内部一些函数,来达到这样的目 ...

最新文章

  1. (转)使用Spring配置文件实现事务管理
  2. Oracle ASM 翻译系列第十二弹:ASM Internal amdu - ASM Metadata Dump Utility
  3. 带指针C语言代码,C语言指针(示例代码)
  4. Thinkphp编辑器扩展类kindeditor用法
  5. 「雕爷学编程」Arduino动手做(38)——joystick双轴摇杆模块
  6. centos手动增加删除swap分区
  7. 接口与interface关键字
  8. OMG: daily scrum nine
  9. 微信/qq消息-定时自动循环发送
  10. flac文件转换成mp3格式
  11. 如何快速掌握一门新的技术?
  12. 复制html代码怎么粘贴快捷键,复制和粘贴快捷键ctrl加什么
  13. 彻底删除spacedesk
  14. 陶陶摘苹果(升级版)
  15. Nginx HTTP请求的11个阶段
  16. 数据库优化——为什么要建立联合索引
  17. docx 转换成html转pdf,python3将docx转换成pdf,html文件,pdf转doc文件
  18. 实训五:交换机配置文件备份
  19. c语言 等概率随机数,随机数函数取样与概率
  20. 安全学习笔记0day,凯文·米特尼, 社会工程学

热门文章

  1. IDEA统一设置编码为utf-8编码及tomcat 乱码问题的解决
  2. 解决Selenium与firefox浏览器版本不兼容问题
  3. .NET(C#)时间日期字符串(String)格式化转换成Datetime异常报错问题
  4. 将两个列表连接在一起
  5. 无法加载资源,因为“应用程序传输安全性”策略要求使用安全连接
  6. 如何使用Sublime Text 2重新格式化HTML代码?
  7. 过滤查询集中的空名称或NULL名称
  8. String和C#中的string有什么区别?
  9. 「起点订阅页」Checkbox 美化引发的蝴蝶效应
  10. mysql的性能瓶颈分析、性能指标、性能指标信息的搜集工具与方法、分析调优工具的使用...