Oracle,Mysql 随机获取N条数据
来源:互联网 发布:淘宝上传新品宝贝描述 编辑:程序博客网 时间:2024/04/28 20:53
本文转载自:http://blog.csdn.net/zhq1209/archive/2010/11/09/5997255.aspx
Oracle随机获取N条数据:
当我们获取数据时,可能会有这样的需求,即每次从表中获取数据时,是随机获取一定的记录,而不是每次都获取一样的数据,这时我们可以采取Oracle内部一些函数,来达到这样的目的
方法1:
select * from (select * from tablename order by sys_guid()) where rownum < N;
在使用方法1时,即使用sys_guid() 这种方法时,有时会获取到相同的记录,即和前一次查询的结果集是一样的,我查找了相关资料,有些说是和操作系统有关,在windows平台下正常,获取到的数据是随机的,而在linux等平台下始终是相同不变的数据集,有些说是因为sys_guid()函数本身的问题,即sys_guid()会在查询上生成一个16字节的全局唯一标识符,这个标识符在绝大部分平台上由一个宿主标识符和进程或进程的线程标识符组成,这就是说,它很可能是随机的,但是并不表示一定是百分之百的这样.
方法2:
select * from (select * from table_name sample(10) order by trunc(dbms_random.value(0, 1000))) where rownum < N;说明: sample(10)含义为检索表中的10%数据,sample值应该在[0.000001,99.999999]之间,其中 sys_guid() 和 dbms_random.value都是内部函数,通过这样的方法,就可以实现我们的需求了.
这种方法缩小了查询的范围,在查询大表,且要提取数据不是很多的情况下,会对查询速度上有一定的提高.
方法3:
select * from (select * from tablename order by dbms_random.value) where rownum< N;
所以,为确保在不同的平台每次读取的数据都是随机的,我们大多采用方法2和方法3两种方案,其中方法3更常用.
Mysql 随机获取N条数据:
select * from tablename order by rand() limit N
本文转载自:http://blog.csdn.net/zhq1209/archive/2010/11/09/5997255.aspx
- Oracle,Mysql 随机获取N条数据
- Oracle 随机获取N条数据
- [转]Oracle 随机获取N条数据
- Oracle 随机获取N条数据
- sql 随机获取N条数据
- sql 随机获取N条数据
- oracle取随机N条数据
- ORACLE 提取N条随机数据
- oracle 随机读取n条数据
- oracle 分组查询,随机N条数据
- oracle sql 随机读取N条数据
- Oracle随机查询n条数据
- 随机取mysql的N条数据
- mysql 随机获取几条数据
- MSSQL、MYSQL,ACCESSl,Oracle随机读取N条记录方法
- MSSQL、MYSQL,ACCESSl,Oracle随机读取N条记录方法
- oracle随机读取表中的N条数据方法
- MYSQL查询随机N条数据的方法
- 那些年 那段青春 那些感动过的话 那些回不去的刻骨记忆
- C#用于命令参数动态构建SQL语言
- nginx websocket功能试用
- js压缩与解压工具
- Java集合分组算法
- Oracle,Mysql 随机获取N条数据
- 四位计算机的原理及其实现
- CSDN云计算俱乐部(深圳)早茶会-畅谈大数据
- log4j配置详解
- IE与CMYK和RGB色彩模式的兼容问题
- Ubuntu12.04下ndnSIM安装
- 20130710,微软7月10日发布7个安全补丁
- LINUX-C成长之路(九):复合数据类型
- recyclebin 学习