mysql怎样高效率随机获取n条数据
ID连续的情况下(注意不能带where,否则结果不好):
SELECT *
FROM `mm_account` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `mm_account`)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id ASC LIMIT 4;
ID不连续的情况下:
SELECT * FROM `mm_account`
WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `mm_account`))) and city="city_91" and showSex=1
ORDER BY id LIMIT 4;
假设你的表叫做mm_account,并且有一个字段叫id。最快的方法如下(随机获取5条):
SELECT * FROM mm_account WHERE id >= ((SELECT MAX(id) FROM mm_account)-(SELECT MIN(id) FROM mm_account)) * RAND() + (SELECT MIN(id) FROM mm_account) limit 5;
如果带where语句,上面就不适合了。带where语句请看下面:
SELECT *
FROM `mm_account` AS t1 JOIN (SELECT ROUND(RAND() * (
(SELECT MAX(id) FROM `mm_account` where id<1000 )-(SELECT MIN(id) FROM `mm_account` where id<1000 ))+(SELECT MIN(id) FROM `mm_account` where id<1000 )) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id LIMIT 5;
mysql怎样高效率随机获取n条数据相关推荐
- mysql高效率写法_mysql高效率随机获取n条数据写法
今天做项目遇到这个问题,本来想用mysql自带的随机函数来实现,但是想到这样做功能是实现了,但是效率真的好差!一下子想不到好的方法,就去网上找了一下,记录下来,好好研究学习一下. ID连续的情况下(注 ...
- mysql 随机槽_mysql怎样高效率随机获取n条数据
ID延续的情况下(注重不能带where,否则效果欠好): SELECT * FROM `mm_account` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MA ...
- laravel mysql rand_laravel如何从mysql数据库中随机抽取n条数据(高性能) - Laravel学习网...
laravel如何高性能地从mysql数据库中随机获取n条数据,有时候我们常常会需要从数据库随机获取数据,比如:给工作人员随机分配10个订单,随机从数据库中随机抽查100个用户:这样我们就需要随机从数 ...
- Oracle 随机获取N条数据
Oracle 随机获取N条数据 当我们获取数据时,可能会有这样的需求,即每次从表中获取数据时,是随机获取一定的记录,而不是每次都获取一样的数据,这时我们可以采取Oracle内部一些函数,来达到 ...
- mysql随机取5条数据_【转】mysql实现随机获取几条数据的方法
sql语句有几种写法 1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要获取的数据条数: 2:SELECT *FROM `table` WHERE i ...
- 随机获取数据库的数据
随机获取数据库的数据 最近的在开发自己的博客,里面有个功能需要随机推荐这个功能. 不同数据库随机获取 10 条数据 转载:https://www.cnblogs.com/gc2013/p/358079 ...
- oracle 取任意一条数据,oracle随机取一条数据详解
Oracle 随机获取N条数据 当我们获取数据时,可能会有这样的需求,即每次从表中获取数据时,是随机获取一定的记录,而不是每次都获取一样的数据,这时我们可以采取Oracle内部一些函数,来达到这样的目 ...
- mysql 获取一条数据_MySQL数据库中随机获取一条或多条记录
在开发过程中遇到了一个问题,使用MySQL数据库,用SQL语句在表中随机获取一条或多条数据,看似简单,但是往深层研究的话还是很有深度的,查了好多资料,接下来给大家分享一下: 1. 随机获取单条数据 S ...
- 从Mysql某一表中随机读取n条数据的SQL查询语句
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...
最新文章
- 可信计算 沈昌祥_沈昌祥院士在南宁开展网络安全前沿知识讲座
- ES JVM使用如果超过75%就会GC较多,导致ES索引性能下降
- mysql8.0.18用什么jdk_基础命令、cake-install、mysql远程登录、JDK安装
- JAVA实现可设置背景的MDI窗口
- Spring-framework应用程序启动loadtime源码分析笔记(二)——@Transactional
- 老式计算机显示器是什么类型的,电脑显示器面板类型有哪些,显示器什么面板好?...
- C#WinForm程序异常退出的捕获、继续执行与自动重启
- Torch 的安装与基本用法
- 【图像隐写】基于matlab GBT+SVD数字水印嵌入与提取【含Matlab源码 1668期】
- 2022年计算机软件水平考试信息系统管理工程师(中级)练习题及答案
- [读书笔录]解析卷积神经网络(魏秀参)——目录和绪论
- 利用爬虫获得疫情信息,并存入表格
- apple watch更新系统时出现红色感叹号解决方法
- 为什么需要API接口开发?
- 互联网新机遇:移动社交电商将成为下一个风口?
- 智慧城市篇 | 数字孪生智慧排水管网管理平台
- 出现Cannot resolve plugin XXX的解决办法
- Git之checkout命令总结
- 魔兽服务器修改端口,魔兽怀旧服:PTR四项全新改动,开放仇恨端口,或将影响副本难度...
- Ubuntu系统_安装NVIDIA显卡驱动与CUDA Toolkit