Access随机读取几条记录的方法
在程序设计时,可能经常用到随机读取几条记录的功能,MSSQL有order by NewID()的方法,Access怎么办呢?
经过一翻百度搜索,还真找到了一些解决方案:
网上还有一种说法,有人采用一条SQL语句解决Access随机读取几条记录的问题:select top 50 * from table order by int(rnd()*50),不过这种方法我不敢苟同,也许是我的只是不够渊博,我竟然不能理解。如果int(rnd()*50)应该是一个数了吧,int(rnd()*50),不初始化种子,所以每次返回结果都是一样的,所以相当于没有排序。
还有一种方法,就是先获取总记录数,然后取1~总数之间的随机数,rs.move,不过这种方法有点罗嗦,在此不推荐。
再反回来看第一种方法,如果稍微修改一下,给rnd添加一个种子呢,比如第一条记录rnd(1),第二条记录rnd(2)….。有了,数据库中的id字段(自动编号主键)不正是现成的吗?select top 10 * from news order by rnd(id)。对就是这样简单。
在测试的时候还发现了另一个有趣的事情,如果order by 常量数字,比如select top 10 * from news order by 1 desc则是按第一列结果倒序来排序。
嗯 专注于技术 ,我现在都看不进去了
恩。多点这样的文章才好、!
@countmeon
呵呵,也是工作需要啊~
@棋牌之家
呵呵,有空就多写几篇
这样呢?rnd(time()-id)
好文,文章被整理到[种豆]-http://www.sowsoy.com/topics/26/2603/62.html,如不同意,请email通知我,谢谢。