Ms access 如何从MS Access数据库中获取随机记录

Ms access 如何从MS Access数据库中获取随机记录,ms-access,random,Ms Access,Random,我有一个MS access数据库。 其中,一个表由带有主键问题ID的问题和答案组成。 我需要使用questionID从该表中检索随机问题。 对于这个场景,我应该使用什么关键字或查询。下面将从您的表中获得一个随机的questionID SELECT TOP 1 questionID FROM questions ORDER BY Rnd(-(100000*questionID)*Time()) MySQL MS访问 SELECT top 1 questionID from questions O

我有一个MS access数据库。 其中,一个表由带有主键问题ID的问题和答案组成。 我需要使用questionID从该表中检索随机问题。
对于这个场景,我应该使用什么关键字或查询。

下面将从您的表中获得一个随机的questionID

SELECT TOP 1 questionID FROM questions ORDER BY Rnd(-(100000*questionID)*Time())
MySQL

MS访问

SELECT top 1 questionID from questions ORDER BY rnd(questionID)

要获得可以使用的不同随机记录,表中需要一个ID字段

SELECT TOP 1 questionID FROM questions ORDER BY Rnd(-(100000*questionID)*Time())
作为参数传递给Rnd函数的负值将使用此参数作为起始值从生成器传递第一个随机值。一种定义的随机化。 特别感谢@kobik在评论中的提示

SELECT TOP 5 questionID FROM [tableName] ORDER BY rnd(INT(NOW*questionID)-NOW*questionID)

这将每次为您提供一组新的答案,您甚至不需要在使用NOW时补足时间,无论您点击的速度有多快,每次都将是一个新的时间,我认为这是Access中解决此问题的最简单、最简洁的方法。

MS Access版本,似乎会生成随机记录,但每次都是相同的记录!同意同样的随机记录很有趣。我已经测试了所有建议的答案,包括这个,我得到了不同的/随机的记录。但只要我再次运行我的测试程序,结果就会和以前一样。就像随机种子生成器在ms access中每次重置一样。我后来发现:bummi,它做同样的事情,每次我运行它,我都会得到相同的4个结果,所以你建议如何修复它@Kobik@GlenMorse,有一个解决方法Bummi,您可能希望编辑您的答案:。因此,在Rnd中使用负数可以解决问题。用法:按Rnd-1000*ID*时间订购此款适合我。所有其他方法都提供相同的记录集。干得好。