用一条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
%>
分享到:
相关推荐
本主题聚焦于如何使用Delphi连接到SQL数据库并随机显示其中的记录。SQL,全称Structured Query Language,是用于管理和处理关系数据库的标准语言。下面我们将详细探讨这个过程。 首先,为了连接Delphi到SQL数据库,...
本资料"Access数据库随机抽取记录条数.zip"主要关注如何在Access中实现这一功能。 首先,我们要了解SQL(Structured Query Language),这是用于管理关系数据库的标准语言。在Access中,我们可以使用SQL查询来获取...
在处理Access数据库时,有时我们需要从数据库中随机抽取一条或多条记录。这看似简单的需求,在实际操作中却可能会遇到一些问题,特别是当涉及到Access数据库记录集缓存机制时。本文将详细介绍如何通过编写特定的SQL...
### SQL语句参考及记录集对象详解 #### 一、SQL语句参考 ##### 1. 基础查询 - **全表选择**: `SELECT * FROM 表名 WHERE 条件 ORDER BY 排序字段` - 示例:`SELECT * FROM 表名 WHERE 字段 = '值' ORDER BY 字段...
针对以上问题,本文介绍的算法通过结合伪随机函数和反转函数,仅需一条SQL语句即可完成随机过程,从而实现简单、高效、资源占用率低的随机抽取。该算法不仅适用于各种编程语言(如VC、VB、Pascal、Java等),也适用...
SQL查询使用`TOP 5`选取表`log`中的前5条记录,同时`NEWID()`函数用于生成唯一的标识符,确保每次请求的数据都是随机的。 请注意,这里省略了数据库操作的具体步骤,包括打开连接、执行SQL语句、获取结果集以及关闭...
在Microsoft SQL Server中,对随机记录进行排序是一个常见的需求,尤其是在数据分析、报告生成或测试数据随机化等场景中。本文将深入探讨如何使用MS SQL语句实现这一功能,并结合提供的SQL代码片段,详细解析其中...
在ASP(Active Server Pages)开发中,经常需要从数据库中随机获取一定数量的记录,例如10条,以便实现各种功能,比如展示随机推荐、防止数据排序过于规律化等。这里我们将探讨如何在两种常见的数据库系统——MSSQL...
- 第一条语句用于从表`a`中选择满足条件的数据,其中`a`列的值必须出现在表`b`的`d`列中。 - 第二条语句用于从表`a`中选择满足条件的数据,其中`a`列的值必须是列表`(1, 2, 3)`中的任意一个值。 **应用场景**: - ...
对于前端技术中的JavaScript(JS),虽然它不是直接操作数据库的语言,但在Web应用中,可能会使用JavaScript来发起数据库查询请求,并处理返回的随机记录。通常JavaScript与数据库之间的交互是通过Ajax技术以及...
在这个性能测试中,我们关注的是在MongoDB中存储1亿条记录时的随机查询性能。测试环境是基于CentOS 6.4的64位操作系统,硬件配置包括一颗Intel Xeon E5-2630 2.30GHz处理器、64GB内存和6块10K转速硬盘组成的RAID0...
**一条SQL语句搞定数据库分页** - **示例**: `SELECT * FROM (SELECT TOP 10 * FROM 表名称 ORDER BY id) AS t1 ORDER BY id DESC;` - **说明**: 实现简单的分页功能。 **选择在每一组b值相同的数据中对应的a最大的...
ASP.NET 2中随机读取Access记录的问题主要源于ADO访问Access数据库时的缓存机制,这可能导致在尝试按随机顺序获取记录时无法得到预期的结果。为了解决这个问题,我们可以采用一种巧妙的方法,通过在SQL查询中引入一...
本文将深入探讨在Oracle数据库操作中涉及的一些关键知识点,包括记录集的显示、时间的SQL转换、汉字的随机选取以及事务处理等。 1. **子程序_显示记录集信息**: 在Oracle数据库操作中,我们经常需要从查询结果中...
在ASP(Active Server Pages)开发环境中,经常需要对数据库中的数据进行各种操作,其中一种常见的需求就是在记录集中随机选取一条记录。本文将详细介绍如何在ASP环境下实现这一功能,并深入解析其实现原理及注意...
13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: ...
在Java编程中,主键(Primary Key)是一个非常重要的概念,它是数据库表中用来唯一标识一条记录的字段。主键的值必须是唯一的,并且不能为NULL。在某些情况下,为了实现数据的随机性或者避免主键冲突,我们可能会...
本篇文章将详细介绍在四种主流的数据库系统——SQL Server、Oracle、MySQL和Access中,如何有效地获取10条随机数据。 1. **SQL Server** 在SQL Server中,我们可以利用`TOP`子句来限制返回的行数,并结合`NEWID()`...