随机读取N条记录(MySQL、SQL Server、Access、Oracle、postgreSQL)
来源:互联网 发布:铆工下料软件 编辑:程序博客网 时间:2024/04/28 05:43
利用一条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
` a
join
(
SELECT
ROUND(RAND() * ((
SELECT
MAX
(id)
FROM
`
TABLE
`)-(
SELECT
MIN
(id)
FROM
`
TABLE
`))+(
SELECT
MIN
(id)
FROM
`
TABLE
`))
AS
id)
AS
b
WHERE
a.id >= b.id
ORDER
BY
a.id LIMIT N;
2、SQL Server
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)按概率抽取:
*
from
Table
sample(百分比);
例:
取表Table中记录条数的10%条记录
3)sys_guid
select *
from
(
select
*
from
Table
orderby sys_guid())
where
rownum<N;
5、postgreSQL
select *
from
Table
order
by
random() limit N
- 随机读取N条记录(MySQL、SQL Server、Access、Oracle、postgreSQL)
- 随机读取N条记录(MySQL、SQL Server、Access、Oracle、postgreSQL)
- 随机读取N条记录(MySQL、SQL Server、Access、Oracle、postgreSQL)
- MSSQL、MYSQL,ACCESSl,Oracle随机读取N条记录方法
- MSSQL、MYSQL,ACCESSl,Oracle随机读取N条记录方法
- sql获取随机记录(MYSQL,ACCESS,ORACLE,SQL Server)
- sql获取随机记录(MYSQL,ACCESS,ORACLE,SQL+Server)
- sql随机读取N条记录
- oracle sql 随机读取N条数据
- MySQL、Oracle、SQL Server查询前n条记录
- [转]MSSQL、MYSQL,ACCESSl,Oracle随机读取N条记录方法
- Sql server,Oracle,MySQL随机查询记录
- sql 随机查询(mysql/sql server/oracle/access)
- Oracle,Mysql,SQL Server等数据库取前N条记录的不同写法
- Oracle,Mysql,SQL Server等数据库取前N条记录的不同写法 (有点发现)
- Oracle,Mysql,SQL Server等数据库取前N条记录的不同写法
- oracle,mysql,sql server,db2取表中随机几条数据
- oracle 随机读取n条数据
- SQL: Add Unique Constraint on existing table
- DTMFTwelveDailerView.java && DTMFTwelveDailer.java
- Silverlight常用小知识总结(不断更新中)
- C# 操作Excel 并把EXCel 轉為cvs格式
- JBoss3.0 下配置和部署EJB简介
- 随机读取N条记录(MySQL、SQL Server、Access、Oracle、postgreSQL)
- ext 柱状图实现多个field分类显示
- C盘里的每个文件夹用处
- mfc dll注入后窗体显示问题
- 互联网企业如何盈利 转载加评论
- 上班族妈妈的教子宝典:教你做事业成功的好妈妈
- DELPHI7操作INHTTP访问SSL出错信息解决方法
- [推荐]使用Java语言编写程序最容易犯的21种错误
- Adobe cs4 许可证过期