mysql高效率随机获取n条数据写法
今天做项目遇到这个问题,本来想用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高效率随机获取n条数据写法的更多相关文章
- mysql实现随机获取几条数据的方法
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xionglangs/article/details/50630758sql语句有几种写法 1:SEL ...
- 【转】mysql实现随机获取几条数据的方法
sql语句有几种写法 1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要获取的数据条数: 2:SELECT *FROM `table` WHERE i ...
- 四种数据库随机获取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)-> ...
- 转: 从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)内得到一个随机 ...
随机推荐
- bzoj 2115: [Wc2011] Xor【线性基+dfs】
-老是想到最长路上 其实可以这样:把每个环的xor和都存起来,然后任选一条1到n的路径的xor和ans,答案就是这个ans在环的线性基上跑贪心. 为什么是对的--因为可以重边而且是无相连通的,并且对于 ...
- [App Store Connect帮助]七、在 App Store 上发行(3.1)提交至“App 审核”:提交 App 以供审核
将您的 App 提交至“App 审核”,从而开始审核流程,以便使您的 App 在 App Store 上可用. 但是,在您能够上传 App 至“App 审核”前,您必须提供所有必填的元数据并为该版本选 ...
- jenkins构建maven项目
使用jenkins构建部署maven项目 因为一开始我们是自定义插件,所以构建项目的时候没有显示maven风格的项目.如果要想使用maven,我们这里必须得安装一下插件,我们在插件管理器中, 可以看到 ...
- 2017 JUST Programming Contest 3.0 D. Dice Game
D. Dice Game time limit per test 1.0 s memory limit per test 256 MB input standard input output stan ...
- SpringCloud开发学习总结(七)—— 声明式服务调用Feign(一)
在实践的过程中,我们会发现在微服务架构中实现客户端负载均衡的服务调用技术Spring Cloud Ribbon<SpringCloud开发学习总结(四)—— 客户端负载均衡Ribbon> ...
- Css 基本的规则写法
样式表的写法: css的语法由一些标志构成,就是一个基本的样式表由选择器,属性和属性值构成.Css有标准的写法规则标准的css写法: h1 { Font-family:黑体;} h1:表示选择符Fon ...
- Solr和Spring Data Solr
一.Solr概述与安装 1.Solr简介 Solr是一个开源搜索平台,用于构建搜索应用程序. 它建立在Lucene(全文搜索引擎)之上. Solr是企业级的,快速的和高度可扩展的.Solr可以和Had ...
- 平衡图片负载,提升web站点访问体验
最近给分公司做官方网站,内网测试一切ok,发布至云端后,体验惊人——公司外网网速渣渣(十几k~几十k),更加要命的是,网站的高清图,根本就加载不出来,几秒,十几秒过去了,仍然在转圈圈,如下图... 于 ...
- JWT认证阐述
哥发达了,是时候实现一下儿时的梦想了,怡红院开起! 店面门脸装修如何?做生意,谁还没个镇店之宝啊?有请我的店长如花小姐! 没事哈!别怕,扭曲的五官往往都藏着一颗纯洁的心灵. 不管如何吧,我的怡红院算是 ...
- SQLite busy handler
SQLite doesn't support high concurrency. In case of a lot of concurrent access from multi-process or ...