acc数据库,如何随机调用n条数据

acc数据库,如何随机调用n条数据,第1张

step 一: sql=\"select id from table\" 结果用存在 rs=conn.execute(sql)step 二: 生成一个 step1的最大值(rs.recordcount)内的随机数字. N个 code: <%Randomize %><% dim r(10) for i=0 to UBound(r) r(i)=int(Rnd()*100) int(Rnd()*100) %>step 三: 将数组联合 join成一个\",\"分割的代码如下: 复制内容到剪贴板 代码:<%Randomize %><%sql=\"select id from table\"rs=conn.execute(sql)maxrecord=rs.recordcountdim r(10)for i=0 to ubound(r)r(i)=rs(int(rnd()*maxrecord))next s=join(r,\",\")sql=\"select * from table where id in(\"&s&\")\"newrs=conn.execute(sql)%> 查看原帖>>

方法1、

sql语句的随机函数:

sql = "SELECT top 6 * FROM [1234] WHERE D_CataID = '12' or D_CataID = '34' and len(tt)<>0 order by (rnd(d_id))"

len(tt)<>0的实现还可: and (tt<>"" and not isnull(tt))

方法2、

rs.open sql,oconn,1,1

RecordCount=rs.RecordCount

ss=""

Randomize

for i=1 to 6

ss=ss &"," &int(rnd*RecordCount)

next

arr=split(mid(ss,2),",")

for i=0 to ubound(arr)

rs.move arr(i),1

'执行你的其他 *** 作,

next

rs.close

方法3、

rs.open sql,oconn,1,1

RecordCount=rs.RecordCount

ss=""

Randomize

for i=1 to 6

ss=ss &"," &int(rnd*RecordCount)

next

rs.close

sql= "SELECT * FROM [1234] where d_id in (" &mid(ss,2) &") order by d_id"

执行rs.open sql,oconn,1,1 及以后的 *** 作。

以上代码的实现都需要把len(rs("tt")) <>0的判断放在sql语句内,否则,6条随机记录可能最后显示不够6条。

方法2、方法3:

1、未考虑序号重复的问题,

2、方法2还未考虑d_id的order问题,

这都是很简单的,修改一下即可。

<%

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 。

至于是不是你要的东西,你自己试了就晓得了,希望能帮助到你,大家一起学习,分多分少都没关系。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9658537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存