首页  >  文章  >  数据库  >  如何在 PHP MySQL 中实现随机排序分页?

如何在 PHP MySQL 中实现随机排序分页?

Susan Sarandon
Susan Sarandon原创
2024-10-24 07:57:02500浏览

How to Implement Pagination with Random Ordering in PHP MySQL?

具有随机排序的 PHP MySQL 分页

如上所述,网站在使用分页在其内容页面上排序搜索结果时面临问题系统。使用的 SQL 查询如下:

<code class="sql">SELECT * FROM table ORDER BY RAND() LIMIT 0,10;</code>

此问题在三种情况下出现:

  1. 排除以前看到的结果:当用户导航时到下一页,之前显示的结果必须从后续查询中排除,同时保持随机排序。
  2. 第 1 页上的新鲜结果:用户在返回第一页时始终遇到随机排序页。这种行为提出了在这种情况下是否可以有效利用分页的问题。
  3. 种子的实际实现:探索在 MySQL 中实现种子函数以实现所需的随机排序的方法。

解决方案:

MySQL RAND(SEED) 函数解决了这个问题。如文档中所述,“如果指定了常量整数参数 N,则将其用作种子值。” (http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand)。

将此应用于示例查询会导致顺序保持随机的场景,而对于给定的种子保持一致:

<code class="sql">SELECT * FROM your_table ORDER BY RAND(351);</code>

每次用户访问第一个结果页面时都可以修改种子并将其存储在会话中。这确保了每次访问第一页时都有不同的随机顺序,而不影响后续页面的随机顺序。

以上是如何在 PHP MySQL 中实现随机排序分页?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn