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 。
至于是不是你要的东西,你自己试了就晓得了,希望能帮助到你,大家一起学习,分多分少都没关系。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)