|
|
| 推广知识 |
| 苏州网站建设技术asp随机提取记录方法介绍 |
技术asp随机提取记录方法介绍--郑州网站建设 首先看看pjblog中随机记录插件的实现方法 'Item_rs 在前面得到的需要取出的记录数 Random_sql="。。。" '(省略) Random_rs.open Random_sql,conn,1,1 '========================================= Count_rs=Random_rs.RecordCount'----记录总数 Item_rs=LoadModSet.getKeyValue("RandomPage")'---------随机显示记录 array_rs = Random_rs.getrows(Count_rs)'-------将记录集放入数组array_rs中 Randomize'---------初始化随机数生成器。 for Random_i = 0 to Item_rs'----循环显示Item_rs条记录 '****************************************************************** '下面这个for是用来如果随机数j有重復就重新生成随机数j,没重復会退出这个for循环 '下面的ubound(array_rs,2) 是数组最大下标,相当记录总数 for Random_m=0 to ubound(array_rs,2) Random_j=int(rnd*Count_rs)'------在记录总数范围内生成随机数j array_str = split(str,",")'----str字符串用来记录以前生成的随机数j,这里将str折成数组用来和新的j比较 '==================================================== '下面这个for是用来检测新生成的随机数j和以前生成的随机数对比, '如果有相同就退出这个for回头重新生成随机数j for Random_n = 0 to uBound(array_str) if cstr(Random_j)=cstr(array_str(Random_n)) then new_j=false'----如果比较后这个新j与前面的有相同,将new_j设為false并退出for exit for else new_j=true'---如果没相同的我们设new_j為true end if next '==================================================== if new_j=true then exit for'----new_j為true说明这个j没有相同的,不须重新生成随机数j,我们退出for Next '****************************************************************** str=str&Random_j&"," '----str是记录前面生成的随机数j并用,号隔开方便折成数组 '。。。。。 '省略部分 Next 可以看到,虽说只用了一句sql,但执行效率较低(在数据数量超过一定值时) 他的方法也是目前网上最常用到的方法,得到记录范围,在范围中生成随机数,应需要的记录条数,取出无重复的记录,用到了3个嵌套的循环,第一层,循环 Item_rs 次,第二层理论上在每次的上级循环中,只循环一次,不过最多不会超过10次的,第三层只是一个判断,在每次的上级循环中,会按第一次循环数递增。 按道理上说,一般在一个只有三五百至上千数据中取个十条八条是没什么影响的,但是如果取出20-100条做动态滚动或切换展示,或记录总数超过一万以上,哪就可想而知了,不过这一次我都没有去测试! <注:不知道查询怎么写的 可能提取了所有记录 速度可能会比较慢>否定了上面的思路后,我继续寻找我的答案~。。。又看到了一个方法: yourstr="*1*3*4*6*12*...." sql="select top 10 * form yourdb where instr('*'&id&'*','"&yourstr&"')<>0 不可取,因为随机ID的范围不知道,yourstr中,随机生成一组ID,如10个,很有可能只有部分在当前数据记录的范围中,也就是很难满足设计者的需求取出指定条数!不过思路比较不错! <这个是不错的办法,应该也比较容易指定条数>继续,还有一方法: n=10 ''取任意10条记录 set rs = server.CreateObject ("adodb.recordset") sql = "select * from table" rs.open sql,conn,1,1 count=rs.recordcount ''记录总数 IF Count<>empty Then |
| 发布时间:2024-03-22 09:53:00 |
点击率:1976 |
「返回上一页」 |
|
|
|