如何从数据库中随机抽取出一定数量的记录?

angyl 2004-01-12 12:21:45
请问,我想使用ASP从access数据库中随机抽取出记录,抽取个数是用text输入的。
还得保证每次抽取的都不一样~~
我想请问大家如何使用Rnd()做到呢?或者使用其它方式?
...全文
110 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
angyl 2004-01-12
  • 打赏
  • 举报
回复
"select top"&request("text")&" * from 表名 ORDER BY NEWID()"
不大明白~~
谢谢,下边这句的话,应如何修改呢?

<%
td = Request.form("no")
set qs = Server.CreateObject("ADODB.Recordset")
qsa = "select td.* from td where not zeng order by ID"
qs.open qsa,conn,1,1
%>
alcoholwang 2004-01-12
  • 打赏
  • 举报
回复
"select top"&request("text")&" * from 表名 ORDER BY NEWID()"
aoeiuvcom 2004-01-12
  • 打赏
  • 举报
回复
gz
angyl 2004-01-12
  • 打赏
  • 举报
回复
谢谢 PPLUNCLE(转向.NET)的数据运算的方法,真不错~
谢谢 alcoholwang(工业酒精)教我的打开数据库的方式~~

谢谢二位

在 qsa = "select top 10 * from td order by NEWID()" 里
不过,newid()这个是什么意思?
angyl 2004-01-12
  • 打赏
  • 举报
回复
是这样的结构吗??

<%
set qs = Server.CreateObject("ADODB.Recordset")
qsa = "select top 10 * from td order by NEWID()"
qs.open qsa,conn,1,1
%>
<%=qs.RecordCount%>
<%qs.close%>

为什么系统提示我:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
ODBC 驱动程序不支持所需的属性。

错误的行数是:
qs.open qsa,conn,1,1
PPLUNCLE 2004-01-12
  • 打赏
  • 举报
回复
楼主如果数据理有100道题的话,上面的
x=Int(rnd*15)+1就改为x=Int(rnd*100)+1
-------------------------------------------
具体思路代码如下:
dim a(10)
yes=0
randomize
for i=1 to 10
do
x=Int(rnd*100)+1
yes=0
for j=1 to i-1
if x=a(j) then
yes=1
exit for
end if
next
loop while yes=1
a(i)=x '得到了一个随机数(保证每次不相同)
sql="select * from 表 where ID(题目)='"& x &"'"
%>
<table><tr><td>....显示题目的HTML代码</td></tr></table>
<%
next
%>

当然楼主也可以先把这10个数全部取出来,放在一个数组中,然后在写sql语句的时候取遍历数组中每个值
alcoholwang 2004-01-12
  • 打赏
  • 举报
回复
<%
Dim no
no = Request.form("no")
set qs = Server.CreateObject("ADODB.Recordset")
qsa = "select top "&no&" * from td order by NEWID()"
qs.open qsa,conn,1,1
%>

no就是要抽取个数
NEWID()就是随机函数

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧