源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-07-30 18:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:asp下sql和access数据库随机取10条记录的代码newid()
MSSQL:select top 10 * from [table] order by newid() ACCESS: 
[u]复制代码[/u] 代码如下:
'以利用rs.move嘛   '如随机取10条   n = 10   '先要判断总记录数是否少于10,若小于10,则有多少取多少 if n>10 rs.recordCount then n=rs.recordCount   dim ranNum   for i = 1 to n   Randomize()   ranNum = int(rs.recordCount*rnd)+1 '产生一个随机数   rs.Move ranNum '移动游标到随机数位置   response.write i & "-" & rs("title") & "<br />" '输出内容   rs.Move -ranNum   next   '……  
       
这样就可以了,当然这样有可能会取到重复的记录,那么把产生随机数那句改下就可以了,声明一个变量来存放已经产生过的随机数,在产生新的随机时先判断是否已经产生过,若产生过则重新生成就是了,这个就比较简单了,用instr等就可以搞定了~~         思路是这样,其它自己动手试试吧。 不重复读取还有个办法就是只产生一个随机数,然后挨着读取这个随机数后面的N条记录。当然也要写好判断,随机数要小于总记录数-要读取记录数量。 
[u]复制代码[/u] 代码如下:
'……   dim n,ranNum   n = 10   Randomize()   ranNum = rs.recordCount-n   if ranNum<1 then ranNum=1   ranNum = int(ranNum*rnd)+1   rs.Move ranNum   for i=1 to 10   response.write i & "-" & rs("title") & "<br />" '输出内容   rs.MoveNext '挨着向下读取   next   '……  
建议自己写个简单的Function来产生和判断不重复随机数。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部