利用一条SQL语句从数据库Table表中随机获取N条记录,各数据库的SQL语句略有不同,如下:
1、MySql Select*From TABLE Order By Rand()Limit N
以上代码效率不高,自己对1000条数据表随机取10条的测试结果为耗时0.125s,有网友推荐改为以下代码效率有大幅提高,耗时为0.005s,不过结果是随机从某个位置开始取N条记录,而不是随机取N条记录,略有差异。详细说明见mysql使用rand随机查询记录效率测试。
SELECT*FROM`TABLE`ajoin(SELECT ROUND(RAND()*((SELECT MAX(id)FROM`TABLE`)-(SELECT MIN(id)FROM`TABLE`)) (SELECT MIN(id)FROM`TABLE`))AS id)AS bWHERE a.id=b.idORDER BY a.id LIMIT N;
2、SQL Server Select TOP N*From TABLE Order By NewID()NewID()函数将创建一个uniqueidentifier类型的唯一值。
3、Access Select TOP N*From TABLE Order By Rnd(ID)
Rnd(ID)其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
Select TOP N*From TABLE Order BY Rnd(Len(UserName))
4、Oracle 1)dbms_random包
select*from(select*from Table order by dbms_random.value)where rownum N;
注:dbms_random包需要手工安装,位于$ORACLE_HOME/rdbms/admin/dbmsrand.sql dbms_random.value(100,200)
可以产生100到200范围的随机数
2)按概率抽取:
select*from Table sample(百分比);例:
select*from Table sample(10);取表Table中记录条数的10%条记录
3)sys_guid select*from(select*from Tableorderby sys_guid())whererownum N;
5、postgreSQL select*from Table order by random()limit N
分享到:
相关推荐
Navicat Premium11.28 for mysql,sqlserver,oracle,sqlite,postgresql,mariaDB
Mysql、Oracle、PostgreSQL、Sqlserver等数据库操作工具Navicat_Premium_15.0.8.zip mac版本
Sqlserver、Oracle、MySql、PostgreSql、SqlLite常用数据库的对比 1、分页 2、时间函数 3、自增列 4、表名规范 5、字符串连接 6、变量定义 7、其它
arcSDE10.1 SQLServer ORACLE POSTGRESQL
db2,mysql,berby,oracle,postgresql,sqlserver,sybase数据库驱动jar包
JDBC连接各种数据库的驱动(mySQL,SQLServer,Oracle,DB2,Access)
SQL Server 2012链接服务器到PostgreSQLSQL Server 2012链接服务器到PostgreSQLSQL Server 2012链接服务器到PostgreSQLSQL Server 2012链接服务器到PostgreSQLSQL Server 2012链接服务器到PostgreSQL
oracle,sqlserver及mysql对比,oracle,sqlserver及mysql对比
数据库转换工具,可实现oracle,mysql,sqlserver,sybase,db2相互转换
导出数据字典工具 支持mysql,sqlserver,postgresql
csharp/c#/.net基于NET6.0 封装的轻量级 ORM 框架 支持多种数据库 SqlServer Oracle MySql PostgreSql Sqlite
SQL Server 2000链接服务器到PostgreSQL
SqlServer,postgresql,mysql ,oracle 以及将数据导入到excel表中所需要的jars
MySQL、PostgreSQL、Oracle比较; 数据库基础知识.ppt
数据库文档导出支持 mysql sqlserver,oracle,postgreSql,sqlite,DB2
SQLPro Studio for mac 专业数据库客户端 Mysql Postgresql Oracle SQLServer
用于MySQL、Oracle和PostgreSQL数据库开发、管理和管理的必备SQL Server 工具和工具
用Delphi编写的用于管理MariaDB,MySQL,SQL Server和PostgreSQL的轻量级客户端完整源码版
MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和/或 MongoDB
(全部是JAVA)jdbc和odbc连接字符串包括,Oracle SQL MySQL DB2 Access Sybase Informix PostgreSQL等等,有很多朋友因为连接字符串的问题,往往都会浪费很多时间。所以我把这些连接字符串都做成了一个Word文档,供...