在Access数据库中随机取一条指定条件的记录的方法~

必须要指定条件,而且并不知道总行数的情况下..

请高人解答,可追分!
1L的答案这样看起来是没问题的,但是因为ACCESS有缓存的关系,导致每次刷新都是一样的数据.

第1个回答  推荐于2017-09-09
<%
set rs=server.CreateObject("adodb.recordset")
sql = "select top 1 * from [AAA] where a1=2 ORDER BY Rnd(-(id + " & Int((10000 * Rnd) + 1) & "))"
rs.open sql,conn,1,1
if rs.recordcount>0 then
do while not rs.eof
%>
.....
<%
rs.movenext
loop
end if
rs.close
set rs=nothing
%>

在 where 后面自己加判断就是了,条数 top 1 自己修改,10000 是表 AAA 随机抽取10000的记录条数

总的意思段代码就是 随机读取 带条件类型的 数据,如果实在不清楚,请加我的QQ156107320 。

至于是不是你要的东西,你自己试了就晓得了,希望能帮助到你,大家一起学习,分多分少都没关系。本回答被提问者采纳
第2个回答  2009-04-21
select top n * from [table] order by rnd(id) 'id为自动编号

加条件 select top n * from [table] where title='中国' order by rnd(id) 等等
第3个回答  推荐于2017-10-05
  一个实例:
  SQL="Select top 6 * from Dv_bbs1 order by newID() desc"
  随机取一条指定条件的的实现语句:
  在ACCESS里
SELECT top 15 id FROM tablename order by rnd(id)
  SQL Server:
Select TOP N * From TABLE Order By NewID()
  Access:
Select TOP N * From TABLE Order By Rnd(ID)
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
Select TOP N * From TABLE Order BY Rnd(Len(UserName))
  MySql:
Select * From TABLE Order By Rand() Limit 10
  SQL数据库有个newid函数,可以很方便的用SQL语句得到表中的随机数据。
  但access数据库没这么方便,虽然有个Rnd,可以通过“select top 10 * from tb order by rnd(id)”得到随机数据,在程序中简单的加上Randomize,是没作用的,道理很简单,Randomize不可能影响SQL语句中的rnd,那只不过是个字符串,SQL语句是放到jet中去执行的。
第4个回答  2009-04-21
如果1L的方法做不到,你可以把rs记录集作为一个枚举类型或数组,在程序里判断。由于不知道你用的是何种语言,在此告诉你一个思路

在Access数据库中随机取一条指定条件的记录的方法
随机生成1-100的数字,对应rownum, 如果条件为真,就算找到一条, 条件为假,则继续生成随机数,直到找到3个条件为真的数据。

如何从access数据库中用SQL语句随机抽取一条数据
这里要强调一点,你数据库中的记录有多少条,你就要重新定义数组的维数上限 可以使用Redim关键字 Redim DBVal(1 To [数据库游标].RecordCount)然后就可以开始抽选了:Dim intRecordNum Randomize '如果你的程序只抽取一条记录,则可以不要这个 intRecordNum = Int((UBound(DBVal) - 1) * Rnd) +...

在access中如何通过子窗体查看数据表中的记录
可以通过四种方法在窗体或数据表中筛选记录:按选定内容筛选、按窗体筛选、筛选目标和高级筛选\/排序。按选定内容筛选1. 启动 Microsoft Access,然后打开您要使用的数据库。2. 在窗体、子窗体、数据表或子数据表的一个字段中,选择一个要作为筛选条件的值的实例(如名称或数字)。3. 在“记录”菜单上...

请问如何输出Access数据库中符合某一条件的数据
数据库表名:ziliao的各字段信息举例如下:idnamebanjinianji1小明一班一年级2小李一班二年级3小张三班一年级现在我要在网页yinianji.html中展示所有一年级学生的信息请问,具体代码如... 数据库表名:ziliao的各字段信息举例如下:id name banji nianji1 小明 一班 一年级2 小李 一班 二年级3 小张 三班 一年级...

如何提取ACCESS数据库中某表中某一单元的数据
获取数据表某些单元的数据,一般可以用SQL选择查询,选定输出字段加上筛选条件选字段来确定,例如 select 课程 from 课程表 where 课程id='001';如果数据表具有唯一约束的列,例如主键或带唯一索引的字段,那么我们就可以用该列名或者说是字段名(横向坐标)加列值(纵向坐标)来精确定位某个记录单元。但是...

请问C#如何从access数据库中随机抽取一条数据?
OleDbDataAdapter(sql, conn);\/\/从数据库中查询da.Fill(ds, tableName);\/\/将数据填充到DataSetint recordCount = ds.Tables[tableName].Rows.Count;\/\/记录的数量int randomNumber = new Random().Next(recordCount);\/\/取得一个随机整数ds.Tables[tableName].Rows[randomNumber]\/\/调用该随机记录 ...

怎样在access中查找指定的字段?
1、首先打开Access数据库,然后点击”创建“。2、单击”查询设计“,会弹出一个”显示表“的新窗体。3、双击目标表(tTeacher1),然后关闭显示表窗体。4、然后在”查询类型“中选择”追加“,输入要追加的表名称,然后点击”确定“。5、双击”tTeacher1“表的字段,依次加入”tTeacher2“中有的字段...

delphi 如何随机抽取access库中的一条数据
但是如果是Access数据库的话似乎没有什么好的解决方法。方法一:有人用如下代码以记录总数为极大值来首先提取出指定数量的随机数,然后以这些随机数做为记录ID。dim n,j dim su()dim a,b,k b=myrs.RecordCount Randomize redim su(index_N)su(1)=Int((b * Rnd) + 1)for n=2 to index_...

asp+access 怎样才能随机抽数据库中的记录?
简单高效:不重复随机读取数据库记录 Set rs = Server.CreateObject("Adodb.RecordSet")rs.open sql,conn,1,1 DIM Appeared Call DisRndRecord(10,rs.recordCount)'调用函数该位置显示记录 '###SUBS '#DisRndRecord(DisNum,rsBound)'#参数DisNum:显示数量 '#参数rsBound:随机数产生范围 Sub DisR...

ACCESS数据库中如何自动计算某一个字段的值?
方法有很多种:这里说两种:第一种: 通过建立查询实现 1.建立一个表。例如下表 表名:收支表 两个字段 (均为货币型)收入 支出 2.基于这个表建立一个查询 a.在查询设计框里,在这两个字段的后面一栏增加表达式:结余:=[收支]-[支出]b.当建立这个表达式的时候你可以利用表达式“生成器”,——...

相似回答