从数据库中取随机记录,怎么实现??

Climber12 2003-11-13 12:44:43
则么从一个表中(A表)取随机记录呢?(A表的主建 为 ID ,int类型)

使得A表中的记录都有机会显示?怎么实现呢?
...全文
54 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
超级大笨狼 2003-12-17
  • 打赏
  • 举报
回复

洗牌完美版:
<SCRIPT LANGUAGE=vbscript >
function xipai(mystr)
xipai=""
if len(mystr)=0 then'如果是空的,那么初试化一付连续的牌
for i=1 to 52
mystr=mystr & "<" & i & "> "
next
end if
dim i,x
for i=1 to 52
myarry=split(mystr) 'myarry是下标52的数组,前0-51个有效
randomize
x=cint(rnd*(ubound(myarry)-1))'前0-51个随便找一个
mystr=replace(mystr, myarry(x) & space(1),"")'从没发的牌中随便挑一张
xipai=xipai & myarry(x) & space(1)
next
end function

function XP(n)
mystr="xipai("""")"
dim i
for i=1 to n
mystr="xipai(" & mystr & ")"
next
XP=eval(mystr)
end function
document.write "洗牌完美版" & "<br/>"
document.write "洗一次牌:" & XP(1) & "<br/>"
document.write "洗两次牌:" & XP(2) & "<br/>"
document.write "洗三次牌:" & XP(3) & "<br/>"
document.write "洗一百次牌:" & XP(100) & "<br/>"
</SCRIPT>


tigerwen01 2003-11-13
  • 打赏
  • 举报
回复
randomize
rint=Cint(Rnd * 10000)
sql="select * from A Where id="&rint
希默软件 2003-11-13
  • 打赏
  • 举报
回复
Randomize
SELECT 字段1,字段2,... FROM 表1 WHERE ID = Int(100*Rnd)

100替换成你的记录总数
xiaobird1 2003-11-13
  • 打赏
  • 举报
回复
rs,move INT((rs.RecordCount - 1) * RND)
exia 2003-11-13
  • 打赏
  • 举报
回复
如果是SQL:
SELECT TOP 1 * FROM table ORDER BY NEWID()
如果是ACCESS:
SELECT TOP 1 * FROM TABLE ORDER BY RND(PK)
wjxp 2003-11-13
  • 打赏
  • 举报
回复
SELECT TOP 1 * FROM sys_stu ORDER BY NEWID()

要想查多条就是TOP N
xfyz 2003-11-13
  • 打赏
  • 举报
回复
加一个循环,判断若记录不存在,再返回!
twsky 2003-11-13
  • 打赏
  • 举报
回复
要是随机生成的ID在数据库中没有找到怎么办呢?
因为如果数据库经过修改删除的话,ID就不是连续的,请问这个问题怎么解决呢?
  • 打赏
  • 举报
回复
你可以试试生成一个随机数,把它作为ID的查询条件,在需要时进行查询显示

28,407

社区成员

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

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