Sql 如何从数据库中获取随机数据?

Sql 如何从数据库中获取随机数据?,sql,random,Sql,Random,我有一张产品表。我已经列出了使用rand函数分页的项目。当使用rand时,它以随机顺序显示项目,但当我们从一页转到另一页时,记录会重复。 是否可以使用rand获取每页中的非重复项?如果是,如何选择,如果否,该选项可能是什么 那么,在应用程序代码中执行第一次查询时,您可以生成一个随机种子,然后在请求之间保留该种子,并将该种子提供给rand[seed]函数。应该可以了 当然,具体情况取决于您的sql代码目前的工作方式;您可能需要循环来计算要忽略的第一页左右的随机数。在这种情况下,我可能会看看是否有办

我有一张产品表。我已经列出了使用rand函数分页的项目。当使用rand时,它以随机顺序显示项目,但当我们从一页转到另一页时,记录会重复。
是否可以使用rand获取每页中的非重复项?如果是,如何选择,如果否,该选项可能是什么

那么,在应用程序代码中执行第一次查询时,您可以生成一个随机种子,然后在请求之间保留该种子,并将该种子提供给rand[seed]函数。应该可以了


当然,具体情况取决于您的sql代码目前的工作方式;您可能需要循环来计算要忽略的第一页左右的随机数。

在这种情况下,我可能会看看是否有办法创建一个产品ID列表,我假设每个产品都有某种唯一的ID,并将其洗牌。该列表可能存储为临时数据库表,也可能存储为web应用程序中的会话变量,例如。。。这样,您就可以访问随机排序列表的任何部分,而不必从头开始重新计算整个列表

这显然是最好的,如果您在任何给定的时间访问该网站的人很少,但您希望他们每个人都浏览结果的几页。

从表中选择列 兰特订购
限制1

非常感谢Marc的建议。。。。。。我试图找出如何生成随机种子,但找不到确切的方法。。。下面是sql查询select*from product rand limit 0,10。所以如果可能的话,你能告诉我如何生成随机种子并提供给兰德公司吗。再次感谢大卫的回答。我使用session变量解决了这个问题。我想知道的是,你的意思是,当很多人同时访问网页时,这是不好的。我的意思是,我描述的方法是最有用的,如果没有太多的人在任何给定的时间访问该网站。你需要为每个人存储一个随机的产品订单,如果你同时有很多访问者,这会增加很多记忆。