四种数据库,取随机记录的方法

原创 2005年03月03日 09:08:00

mysql:select * from tablename order by rand() limit 10
sqlserver:select top 10 * from tablename order by NEWID()

ORACLE:使用 dbms random value的一种方法


SQL> select *from (select *from t order by dbms_random.value) where rownum<10;

         A
----------
        39
       101
       134
         5
        83
        97
        96
       140
        81

已选择9行。

SQL> select *from (select *from t order by dbms_random.value) where rownum<10;

         A
----------
        27
       118
       141
       103
       128
        10
       142
        68
        74 

有人说这是一种效率最差的方法,恳请告知比这更好的解决方案!

ACCESS(一):

yourstr="*1*3*4*6*12*...."
sql="select top 10 * form yourdb where instr('*'&id&'*','"&yourstr&"')<>0

ACCESS(二):

<%
   n=10    ''取任意10条记录
   set rs = server.CreateObject ("adodb.recordset")
      sql = "select * from table"
      rs.open sql,conn,1,1
      count=rs.recordcount   ''记录总数
      IF Count<>empty Then
         Randomize      
        for i = 1 to n       ''循环n次
           num=Fix(Rnd*count) ''num便是随机产生的记录行数,用Fix(),使其不会大于count值。
           rs.move num    ''移到改随机行
           Response.write rs(0)   ''出该条记录
        rs.movefirst     ''别忘了再把指针移到第一条
        next
      End IF
      rs.close
   set rs = nothing
%>


SQL> select *from (select *from t order by dbms_random.value) where rownum<10;

         A
----------
        39
       101
       134
         5
        83
        97
        96
       140
        81

已选择9行。

SQL> select *from (select *from t order by dbms_random.value) where rownum<10;

         A
----------
        27
       118
       141
       103
       128
        10
       142
        68
        74 

有人说这是一种效率最差的方法,恳请告知比这更好的解决方案!

ACCESS(一):

yourstr="*1*3*4*6*12*...."
sql="select top 10 * form yourdb where instr('*'&id&'*','"&yourstr&"')<>0

ACCESS(二):

<%
   n=10    ''取任意10条记录
   set rs = server.CreateObject ("adodb.recordset")
      sql = "select * from table"
      rs.open sql,conn,1,1
      count=rs.recordcount   ''记录总数
      IF Count<>empty Then
         Randomize      
        for i = 1 to n       ''循环n次
           num=Fix(Rnd*count) ''num便是随机产生的记录行数,用Fix(),使其不会大于count值。
           rs.move num    ''移到改随机行
           Response.write rs(0)   ''出该条记录
        rs.movefirst     ''别忘了再把指针移到第一条
        next
      End IF
      rs.close
   set rs = nothing
%>
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JSP连接数据库四种方法

  • 2012-06-24 17:42
  • 80KB
  • 下载

mysql不用rand()函数实现随机读取数据库记录的方法

很多朋友都知道在mysql随机查询数据直接使用rand()函数就可以实现了,但是rand()函数如果直接使用几百上万条数据没什么问题,如果上万条数据就出事了,下面我来给各位朋友详细介绍mysql中ra...

java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区

一)哈希表简介 非哈希表的特点:关键字在表中的位置和它之间不存在一个确定的关系,查找的过程为给定值一次和各个关键字进行比较,查找的效率取决于和给定值进行比较的次数。     哈希表的特点:关键字...

servlet小总结3----同一用户的不同页面的共享数据的四种方法,及Servlet中操作数据库时等

1同一用户的不同页面的共享数据的四种方法 (1) cookie技术:即服务器在客户端保存用户的信息,比如登录名,密码等就是cookie,其 作用如下,A保存用户名,密码,在一定时间内不用重新登录 ...

Oracle数据库远程连接设置的四种方法及其注意事项

Oracle数据库的远程连接可以通过多种方式来实现,本文我们主要介绍四种远程连接的方法和注意事项,并通过示例来说明,接下来我们就开始介绍。 第一种情况: 若oracle服务器装在本机上,那...

在SQL Server数据库中批量导入数据的四种方法

在SQL Server数据库中批量导入数据的四种方法,在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题。其实,在SQL Server中集成了很多成批导入数据的方法。有些项目实施顾问头疼的问题...

C# mysql 四种操作数据库方法封装

1、MysqlExecuteReader,我这里是用MysqlExecuteReader将从数据库里面取得的数据放到一个二维数组里面, MysqlExecuteReaderRows主要是为了取得数据集...

【iOS开发】 数据库的四种方法 (增删改查)

在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题。将数据保存到本地,能够让程序的运行更加 流畅

四种连接数据库的方法

四种连接数据库的方法(DriverManager、DataSource子类、DBCP、c3p0)一、环境   1、数据库驱动jar文件   2、DBCP方法Commons-dbcp.jar:连接池的实...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)