从mysql数据表中随机取出一条记录
核心查找数据表代码:
select * from 表名 order by rand( ) limit 1; //此处的1就是取出数据的条数
但这样取数据网上有人说效率非常差的,那么要如何改进呢
搜索Google,网上基本上都是查询max(id) * rand()来随机获取数据。
SELECT *
FROM `table` 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 5;
但是这样获得的是5条连续的记录。解决办法只能是每次查询一条,查询5次,但这个又不能满足我的要求了,我要一次找几条
高效写法
SELECT * FROM user WHERE userId >= ((SELECT MAX(userId) FROM user )-(SELECT MIN(userId) FROM user )) * RAND() + (SELECT MIN(userId) FROM user ) LIMIT 5
从mysql数据表中随机取出一条记录的更多相关文章
- 查询MYSQl数据表中的最后一条记录
		
mysql: select * from table order by id DESC limit 1 oracle: select * from emp where id in (select ma ...
 - 从数据表中随机抽取n条数据有哪几种方法(join实现可以先查数据然后再拼接)
		
从数据表中随机抽取n条数据有哪几种方法(join实现可以先查数据然后再拼接) 一.总结 一句话总结:最好的是这个:"SELECT * FROM table WHERE id >= (( ...
 - postgresql-从表中随机获取一条记录
		
目录 postgresql如何从表中高效的随机获取一条记录 随机获取一条记录random() 改写1 改写2 改写3 对比 注意 结语 postgresql如何从表中高效的随机获取一条记录 selec ...
 - mysql 数据表中查找、删除重复记录
		
为了性能考虑,在阅读之前提醒大家,如果有子查询,子查询查询到的数据最好不要超过总数据量的30%. 查询有重复数据的记录 select * from F group by a,b,c,d having ...
 - 从表中随机返回n条记录
		
创建测试用表: CREATE OR REPLACE VIEW V AS SELECT 'a' AS c FROM dual UNION ALL SELECT 'b' AS c FROM dual UN ...
 - 从数据库表中随机获取N条记录的SQL语句
		
Oracle: select * from (select * from tableName order by dbms_random.value) where rownum < N MS SQ ...
 - 1.10 从表中随机返回n条记录
		
同时使用内置函数的rand函数. limit 和order by: select * from emp order by rand() limit 2;
 - 转: 从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)内得到一个随机 ...
 
随机推荐
- SQLServer获取临时表所有列名或是否存在指定列名的方法
			
获取临时表中所有列名 select name from tempdb.dbo.syscolumns where id=object_id( '#TempTB') 判断临时表中是否存在指定列名 if c ...
 - 交通银行 Java Socket 服务启动 管理 WINDOWS 版
			
按照交通银行提供的无界面启动方法试验了很多次,都没有成功,所以自己动手用C# 知识写了一个. 小工具可以判断 交通银行 JAVA SOCKET 服务是否启动,并可以启动/关闭服务 主要代码如下: 判断 ...
 - 【Unity】12.5 Navmesh Obstacle组件
			
开发环境:Win10.Unity5.3.4.C#.VS2015 创建日期:2016-05-09 一.简介 在大多数游戏情景中,可行进的区域往往不是完全不变的.比如被破坏的路.桥等将不再允许通过.那么, ...
 - vs2012 编译运行报 项目程序包Dsp.Bds.dll还原失败,找不到版本xxxxxx的程序包问题的解决方法
			
原先vs2012程序运行项目是可以了,不会出现程序包Dsp.Bds.dll还原失败,找不到版本未2.0.1.0的程序包问题, 但是项目可以正常运行,每次调试看到下面一片红感觉不舒服 原因:可能当时我看 ...
 - OAuth2.0 基础概述
			
web:http://oauth.net/2/ rfc:http://tools.ietf.org/html/rfc6749 doc:http://oauth.net/documentation/ c ...
 - vmware screen
			
1. Question Description: the screen of the vmware looks small . 2. Solution: 2.1 look the size of sc ...
 - 利用javascript、php和ajax实现计算器
			
计算器和ajax部分: <?php /** * Created by PhpStorm. * User: Administrator * Date: 16-9-2 * Time: 上午9:20 ...
 - 跨平台的 SQL 客户端
			
The major update to SQL client was to move to the .NET Core networking libraries instead of the nati ...
 - Android5.0新特性——图片和颜色(drawable)
			
图片和颜色 tint属性 tint属性一个颜色值,可以对图片做颜色渲染,我们可以给view的背景设置tint色值,给ImageView的图片设置tint色值,也可以给任意Drawable或者NineP ...
 - html-制作导航菜单
			
导航菜单nav: 1.使用列表标签<ul> 2.使用浮动布局float 3.使用超链接标签<a>:要使用<a>标签的margin外边距,需要让<a>标签 ...