【问题标题】:Select X records randomly from a table for Y hours [closed]从表中随机选择 X 条记录 Y 小时 [关闭]
【发布时间】:2014-10-16 06:08:24
【问题描述】:

我正在尝试找出从表中为 24 hours 随机选择 10 记录的最佳方法,该语句应在 24 小时内返回相同的集合

SELECT * FROM tableX LIMIT 10

我认为我可以使用MMDDYY 作为算法的输入,该算法将采用 1 个输入并为该输入返回相同的数据集。并在WHEREORDER BY 中使用它,然后在接下来的 24 小时内每天都会返回不同的数据。

例如:

我有一个名为news 的表,我希望能够选择10 Random news,但我不希望每次用户刷新页面时值都发生变化,我希望相同的新闻出现24 小时。第二天又会变成另一组随机新闻。

【问题讨论】:

  • 你能提供样本数据和想要的结果吗?一方面,我不知道“从一个表中随机选择 10 条记录 24 小时”是什么意思。
  • 我添加了一个例子@GordonLinoff

标签: mysql sql


【解决方案1】:

基于this response,您可以从一个表中选择随机记录:

SELECT * FROM table ORDER BY RAND() LIMIT 10;

根据MySql doc,函数 RAND() 可以将种子作为参数。

所以你应该使用:

 SELECT * FROM table ORDER BY RAND(yyyymmdd) LIMIT 10;

其中yyyymmdd 是一个表示日期的整数。

【讨论】:

  • 是的,我想播种日期可以解决问题!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-28
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 2019-07-15
相关资源
最近更新 更多