【问题标题】:php paginate recordset with order by randomphp按随机顺序对记录集进行分页
【发布时间】:2026-01-14 16:15:02
【问题描述】:

我有一个 mySQL 业务记录集,我必须随机排序以对他们公平,以确保他们都获得相同的曝光。

我现在的问题是列表太长,所以我必须对结果进行分页。我无法将限制 LIMIT %d, %d 用于随机化记录的方式,因为它会重新随机化记录,有时会出现相同的业务。

我需要以随机顺序获取记录,然后对它们进行分页。有没有办法做到这一点?

谢谢。

SELECT * 
FROM business
ORDER BY RAND( ) 
LIMIT 0 , 30

我知道 RAND( ) 不是随机化记录的最有效方法。以后我会改的。

【问题讨论】:

  • Google is your friend - first result 正好解决您的问题。
  • 虽然这是一个非常好的方法,但值得注意的是,只要密钥存储在会话中,顺序就会保持不变。明智的做法是在用户访问第一页时重新创建密钥,以便在每个用户的基础上进行更多随机化,但如果他们继续到第 2,3 页等,他们仍然会看到所有结果
  • 谢谢。我用谷歌搜索了它,但看不到任何用处。一定错过了这个
  • RAND() 不是静态数字。所以它叫 rand。

标签: php mysql


【解决方案1】:

你可以纯粹通过jquery来做分页吗?

这将使列表保持相同的顺序,直到页面重新加载并重新随机化。

【讨论】: