1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

ASP随机提取数据库记录

本帖由 小叶2005-09-07 发布。版面名称:后端开发

  1. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    PHP:
    <!--#include file="数据库连接"-->
    <%
    "一个从数据库中随机读取纪录的例子
      Set Rs1=server.CreateObject ("
    adodb.recordset")
      Set Rs=server.CreateObject ("
    ADODB.RECORDSET")
      SQL="
    Select id from Article order by id desc"
      rs.Open sql,dataconn,1,1
      If not rs.EOF then
       total=rs("
    id")  "取最大的ID
       rs
    .Close   
    '定义随机数..
      Randomize
      R=Int((total - 1+ 1) * Rnd + 1)  
      SQL="Select id,content from Article where id="& R
      rs.Open sql,dataconn,1,1
      if not rs.EOF then
        content=RS("content")
        content=replace(content,chr(10),"<br>")
        content=replace(content,chr(13),"<br>")
        content=replace(content,"<br><br>","<br>")
        Response.Write   content
       else
       sql1="select content from Article"
       rs1.Open sql1,dataconn,1,1
       if not rs1.eof then
       "取第一条纪录作为默认的显示纪录
       content=RS1("content")
        content=replace(content,chr(10),"<br>")
        content=replace(content,chr(13),"<br>")
        content=replace(content,"<br><br>","<br>")
        Response.Write   content
       else
       "数据库为空
       Response.Write "不存在"
       end if
       rs1.Close    
       end if
    Rs.Close
    end if
    set Rs=nothing
    %>  
     
  2. 老林

    老林 New Member

    注册:
    2005-09-06
    帖子:
    10,580
    赞:
    36
    更简单的方法

    随机提取10条记录的例子:

    Sql server:

    select top 10 * from 表 order by newid()

    Access:

    SELECT top 10 * FROM 表 ORDER BY Rnd(id)

    Rnd(id) 其中的id是自动编号字段,可以利用其他任何数值来完成

    比如用姓名字段(UserName)

    SELECT top 10 * FROM 表 ORDER BY Rnd(len(UserName))

    MySql:

    Select * From 表 Order By rand() Limit 10
     
  3. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    又学到一招
    哈哈
     
  4. 吴天

    吴天 New Member

    注册:
    2005-09-08
    帖子:
    16
    赞:
    0
    如果记录不连续呢,也就是其中删除了多条呢,这样可能会取不出来记录的
     
  5. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    如果记录不连续,,用老林的那种方法不错..