用ASP或SQL怎么随机读取表中的记录???
发布网友
发布时间:2024-10-14 20:08
我来回答
共4个回答
热心网友
时间:2024-11-08 16:43
楼上说的也有道理,但是存在一个问题,就是如果ID不是连续的,在以前删除过记录,比如删除了ID=11的记录,那么在随机数为11时查询会产生错误。
解决办法是将ID首先存储在数组中,随机数查找数组的下标,最后按数组存储的ID查询就不会出错了(但只能适用在记录数在数组容许的条件,如果记录数太多,此方法运行比较慢)。
热心网友
时间:2024-11-08 16:43
楼上说的有道理,就是弄一个随机数和你表中的id对比,如如果范围设置的合理就抽出该记录。最好是以主健为参照。
热心网友
时间:2024-11-08 16:44
sql="select top 1 * from 表 order by newid()"
从表中随机选一条记录
热心网友
时间:2024-11-08 16:44
利用rnd先生成一个随机数:
Randomize()
sid=INT((1017-89+1)*RND+89)‘注:比如按照你的id字段进行随机取值,查看你数据库中的id范围,此式即生成89-1017之间的随机数,然后按照生成的随机id为条件从数据库中取值
set rs=server.CreateObject("adodb.recordset")
sql="select * from 表 where id="&sid&""
rs.open sql,conn,1,1
------------
实际应用中,你可以:
<form action="?action=suiji" method="post">
。。
</form>
<%
action=request("action")
if action="suiji" then
使用随机数取出一条记录
end if
%>
---
楼上说的对,如果删除过记录的话,取值会出错,那就加个判断,
if 不为空,再读库,索引所有记录id不太现实,慢死了