asp随机提取access数据库记录的几种方法

作者:Atwind 时间:2007-09-06 19:42:00 

今天研究了些取access数据库随机记录问题,这是这我自己搜集整理的方法。大家有没有高见,可以告诉我,或者我总结的东东本身有误,也可以帮我修正。

检查了一些贴子对于MS SQL数据库一般可以采用这样的语句:

select top 50 * from someTable order by NewID()


但是如果是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_N 
  a=Int((b * Rnd) + 1) 
  for j=1 to n 
      do while a=su(j) 
          a=Int((b* Rnd) + 1) 
          j=1          
      loop 
  next 
  su(n)=a 
next



这种方式有一些问题,就是当ID不是连续的话,有可能某些随机数不存在ID序列当中。另外ID的最大值与总的记录值不一定相等,这样有些记录ID会永远被忽略。

方法二:有人采用一条SQL语句解决此问题
select top 50 * from table order by int(rand()*50)
如果这条语句可行的话是个不错的方法。我测试这条语句并没有通过,如果有人知道是哪有问题请告诉我,非常感谢。

方法三:有这样一种方法,我觉的不错。


yourstr="*1*3*4*6*12*...." 
sql="select top 10 * form yourdb where instr(’*’&id&’*’,’"&yourstr&"’)<>0"

yourstr可以生成随机数多一点大于所限定抽取的随机数为好。这样可以排除记录不足的情况。
方法四:



<% 
   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 
         Randomize        
        for i = 1 to n       ’’循环n次 
           num=Fix(Rnd*count) ’’num便是随机产生的记录行数,用Fix(),使其不会大于count值。 
           rs.move num    ’’移到改随机行 
           Response.write rs(0)   ’’出该条记录 
        rs.movefirst     ’’别忘了再把指针移到第一条 
        next 
      End IF 
      rs.close 
   set rs = nothing 
%>


标签:access,随机,记录
0
投稿

猜你喜欢

  • SQL Server 使用 SET FMTONLY ON 获得表的元数据

    2024-01-24 00:20:41
  • python3 kubernetes api的使用示例

    2021-11-11 00:56:18
  • 如何实现html表格里隔行换色

    2007-10-19 13:42:00
  • Softmax函数原理及Python实现过程解析

    2022-12-15 02:18:24
  • pytorch 实现在一个优化器中设置多个网络参数的例子

    2021-11-30 17:12:05
  • 使用Python实现二分法查找的示例

    2022-02-08 13:52:53
  • python+opencv 读取文件夹下的所有图像并批量保存ROI的方法

    2021-02-23 13:07:23
  • 如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单

    2022-08-02 13:14:35
  • 从网页设计开始

    2008-06-30 12:17:00
  • 6个卓越Web设计细节

    2010-03-29 12:56:00
  • Vue实现返回顶部按钮实例代码

    2024-06-05 09:19:50
  • asp动态页面生成html页面

    2008-10-24 09:03:00
  • 操作Dom节点实现间歇滚动新闻

    2009-10-16 20:51:00
  • 使用Python来开发微信功能

    2023-09-25 00:05:28
  • 给大家整理了19个pythonic的编程习惯(小结)

    2024-01-02 08:00:05
  • python:关于文件加载及处理方式

    2021-03-12 10:17:30
  • anaconda navigator打不开问题的解决方法

    2023-09-12 08:48:20
  • ASP的错误代码都有哪些?

    2009-10-28 18:15:00
  • JS实现六边形3D拖拽翻转效果的方法

    2023-08-28 15:51:31
  • MySQL 加密/压缩函数

    2024-01-23 23:51:14
  • asp之家 网络编程 m.aspxhome.com