`
cqling
  • 浏览: 5077 次
  • 性别: Icon_minigender_2
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

用一条SQL得到数据库中的随机记录集

阅读更多

用一条SQL得到数据库中的随机记录集”问题在网上已经有很多答案了:
SQL Server 2000:
SELECT TOP n * FROM tanblename ORDER BY NEWID()
Access
SELECT TOP n * FROM tanblename ORDER BY rnd([一个自动编号字段])

好了!就说说这个Access的!

打开Access2003建立一个带有自动编号字段的表 T1 : id_(auto),content_
随便插入些许记录

然后,点选“查询”新建一个查询,“设计视图”,选择T1,然后选择SQL视图(这样可以写自己的SQL了,比较习惯),好了,写吧:

SELECT TOP 3 [content_] FROM [T1] ORDER BY rnd([id_])

然后运行一下结果,嗯记住了是什么结果哦。

返回SQL视图,再运行看结果,跟上次的不一样!那就对了!(当然你的T1里别只有少于3条的记录呀)

好了,我们是搞WEB开发的!
写个ASP看看

 

<%

 Dim Con,RS
  Set Con = Server.CreateObject("ADODB.CONNECTION")
  Con.ConnectionString = "Provider=MicroSoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("*.mdb")
  Con.CommandTimeout = 20
  Con.CursorLocation = 3
  Con.Open


  Set RS = Con.Execute("SELECT TOP 3 [content_] FROM [T1] ORDER BY rnd([id_])")
  Do While Not RS.EOF
   Response.Write RS.Fields("content_").Value & "<br />"
   RS.MoveNext
  Loop
  RS.Close
  Set RS = Nothing
  
  
  Con.Close
  Set Con = Nothing
   

%>

 

 


localhost上运行一下这个ASP,看到结果了吧,记住!再F5一下!咦?~~~~~~~~~~~还那个结果!这可不是我们想要的!
当然了,rnd在运行前应该执行Randomize语句的!
可是怎么执行?
Access里支持Randomize么?我的Access也不是很熟,看了一下帮助,只找到了VBS里的那个Randomize……
解决问题是每个程序员最来精神的!
赶紧Google一下!
翻了半天也没有好的解决方案,有的干脆用asp来循环的找position,呸,费了半天劲干什么呢,我就想SQL解决怎么办?

Access里的Randomize不知道怎么用,asp的基本功还会吧?开动脑筋,有了!


<%

 Dim Con,minPID,RS
  Set Con= Server.CreateObject("ADODB.CONNECTION")
  Con.ConnectionString = "Provider=MicroSoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("*.mdb")
  Con.CommandTimeout = 20
  Con.CursorLocation = 3
  Con.Open

  Randomize
  Set RS = Con.Execute("SELECT TOP 3 [content_] FROM [T1] ORDER BY rnd(-(id_+" & rnd() & "))")
  Do While Not RS.EOF
   Response.Write RS.Fields("content_").Value & "<br />"
   RS.MoveNext
  Loop
  RS.Close
  Set RS = Nothing
 
 
  Con.Close
  Set Con = Nothing

%>

分享到:
评论

相关推荐

    Access数据库随机抽取记录条数.zip

    本资料"Access数据库随机抽取记录条数.zip"主要关注如何在Access中实现这一功能。 首先,我们要了解SQL(Structured Query Language),这是用于管理关系数据库的标准语言。在Access中,我们可以使用SQL查询来获取...

    Delphi连接SQL随机显示数据库中的记录..rar

    本主题聚焦于如何使用Delphi连接到SQL数据库并随机显示其中的记录。SQL,全称Structured Query Language,是用于管理和处理关系数据库的标准语言。下面我们将详细探讨这个过程。 首先,为了连接Delphi到SQL数据库,...

    随机得到Access数据库记录

    在处理Access数据库时,有时我们需要从数据库中随机抽取一条或多条记录。这看似简单的需求,在实际操作中却可能会遇到一些问题,特别是当涉及到Access数据库记录集缓存机制时。本文将详细介绍如何通过编写特定的SQL...

    SQL语句参考及记录集对象详解

    ### SQL语句参考及记录集对象详解 #### 一、SQL语句参考 ##### 1. 基础查询 - **全表选择**: `SELECT * FROM 表名 WHERE 条件 ORDER BY 排序字段` - 示例:`SELECT * FROM 表名 WHERE 字段 = '值' ORDER BY 字段...

    一种基于SQL的元组集随机抽取算法.pdf

    针对以上问题,本文介绍的算法通过结合伪随机函数和反转函数,仅需一条SQL语句即可完成随机过程,从而实现简单、高效、资源占用率低的随机抽取。该算法不仅适用于各种编程语言(如VC、VB、Pascal、Java等),也适用...

    ajax_数据库中随机读取5条数据动态在页面中刷新

    SQL查询使用`TOP 5`选取表`log`中的前5条记录,同时`NEWID()`函数用于生成唯一的标识符,确保每次请求的数据都是随机的。 请注意,这里省略了数据库操作的具体步骤,包括打开连接、执行SQL语句、获取结果集以及关闭...

    ms sql语句怎么样对随机记录进行排序

    在Microsoft SQL Server中,对随机记录进行排序是一个常见的需求,尤其是在数据分析、报告生成或测试数据随机化等场景中。本文将深入探讨如何使用MS SQL语句实现这一功能,并结合提供的SQL代码片段,详细解析其中...

    asp下sql和access数据库随机取10条记录的代码newid()

    在ASP(Active Server Pages)开发中,经常需要从数据库中随机获取一定数量的记录,例如10条,以便实现各种功能,比如展示随机推荐、防止数据排序过于规律化等。这里我们将探讨如何在两种常见的数据库系统——MSSQL...

    sql语句收集,常用数据库表操作语句

    - 第一条语句用于从表`a`中选择满足条件的数据,其中`a`列的值必须出现在表`b`的`d`列中。 - 第二条语句用于从表`a`中选择满足条件的数据,其中`a`列的值必须是列表`(1, 2, 3)`中的任意一个值。 **应用场景**: - ...

    如何从数据库中随机取出10条记录的方法

    对于前端技术中的JavaScript(JS),虽然它不是直接操作数据库的语言,但在Web应用中,可能会使用JavaScript来发起数据库查询请求,并处理返回的随机记录。通常JavaScript与数据库之间的交互是通过Ajax技术以及...

    1亿条记录的MongoDB数据库随机查询性能测试

    在这个性能测试中,我们关注的是在MongoDB中存储1亿条记录时的随机查询性能。测试环境是基于CentOS 6.4的64位操作系统,硬件配置包括一颗Intel Xeon E5-2630 2.30GHz处理器、64GB内存和6块10K转速硬盘组成的RAID0...

    SQL数据库语句大全.docx

    **一条SQL语句搞定数据库分页** - **示例**: `SELECT * FROM (SELECT TOP 10 * FROM 表名称 ORDER BY id) AS t1 ORDER BY id DESC;` - **说明**: 实现简单的分页功能。 **选择在每一组b值相同的数据中对应的a最大的...

    ASP.NET 2如何随机读取Access记录

    ASP.NET 2中随机读取Access记录的问题主要源于ADO访问Access数据库时的缓存机制,这可能导致在尝试按随机顺序获取记录时无法得到预期的结果。为了解决这个问题,我们可以采用一种巧妙的方法,通过在SQL查询中引入一...

    Oracle数据库操作

    本文将深入探讨在Oracle数据库操作中涉及的一些关键知识点,包括记录集的显示、时间的SQL转换、汉字的随机选取以及事务处理等。 1. **子程序_显示记录集信息**: 在Oracle数据库操作中,我们经常需要从查询结果中...

    asp下实现记录集内随机取记录的代码

    在ASP(Active Server Pages)开发环境中,经常需要对数据库中的数据进行各种操作,其中一种常见的需求就是在记录集中随机选取一条记录。本文将详细介绍如何在ASP环境下实现这一功能,并深入解析其实现原理及注意...

    PHP实现在数据库百万条数据中随机获取20条记录的方法

    代码示例中展示了一个简化的查询语句,其中使用了`mt_rand`函数来生成随机偏移量,并通过SQL查询从表中取出一条记录。实际上,为了确保取出的20条记录是随机且不重复的,需要在随机偏移量生成后对之前抽取的记录进行...

    数据库操作语句大全(sql)

    13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: ...

    JAVA主键随机+SELECT联动+数据库随机取数+F5刷新+字符编码乱码

    在Java编程中,主键(Primary Key)是一个非常重要的概念,它是数据库表中用来唯一标识一条记录的字段。主键的值必须是唯一的,并且不能为NULL。在某些情况下,为了实现数据的随机性或者避免主键冲突,我们可能会...

Global site tag (gtag.js) - Google Analytics