如何取得数据库中的随机N条纪录?

bug_zj 2008-10-21 09:39:22
我用的是ACCESS数据库,本想用SQL语句实现,比如
select top 10 * from table1 order by rnd(id)
但是得到的是每次一样的随机纪录.

请不要告诉我用newid(),这只适合SQL数据库.

用简洁一点的方法吗?
...全文
62 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bug_zj 2008-10-28
  • 打赏
  • 举报
回复
我自己已经解决了,
方法可以与需要的同志分享:
利用DELPHI自带的随机取数函数.
关键代码有下面几行:
randomize;//初始化随机数,否则每次随机的顺序是一样的.
locate_id:=random(adoquery_TESTtemp.RecordCount+1);//得到表中纪录总数,并对其取随机数.
adoquery_TESTtemp.MoveBy(locate_id);//使纪录定位到随机的那条纪录.

剩下的代码就根据各人需要了.
bug_zj 2008-10-22
  • 打赏
  • 举报
回复
TO hj3000:括号里用随机数?怎么用?
可以详细一点吗?
具体语句语句应该怎么写?
hj8090 2008-10-21
  • 打赏
  • 举报
回复
where rnd in (0,1,2,3)?括号里用随机数
fjtxwd 2008-10-21
  • 打赏
  • 举报
回复
select top 10 * from table1 order by rnd(id)每次得到的怎么会一样?应该不一样的

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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