如何在 MySQL 分页中保持随机排序而不重复或固定首页结果?

DDD
发布: 2024-10-24 07:53:29
原创
597 人浏览过

How to Maintain Random Ordering in MySQL Pagination without Duplicates or Fixed First Page Results?

具有随机排序的 PHP MySQL 分页

在试图防止重复结果并确保不同的集合时,在 MySQL 分页中维护随机排序可能会带来挑战第一页。以下是这些问题的解决方案:

1.防止重复结果

要排除后续页面上以前看到的结果,请使用基于以前获取的行的排除条件来增强 SQL 查询。利用 PHP 数组存储获取的内容,并在查询中加入排除条件:

<code class="php">$excludeIDs = []; // Array to store excluded IDs

$query = "SELECT * FROM table ";
if(!empty($excludeIDs)) {
    $query .= "WHERE id NOT IN (" . implode(",", $excludeIDs) . ") ";
}
$query .= "ORDER BY RAND() LIMIT 0,10;";</code>
登录后复制

2.首页上的不同结果

是的,通过向 RAND() 函数引入种子值,可以将分页与随机排序一起使用。通过改变种子(例如,根据时间或用户的 IP 地址),您每次都可以获得不同的结果集。

3.使用 RAND(SEED)

使用 RAND(SEED) 指定种子值来影响随机排序。通过设置一个常量整数作为种子,可以控制结果序列:

<code class="php">$seed = 521; // Example seed value

$query = "SELECT * FROM table ORDER BY RAND(" . $seed . ") LIMIT 0,10;";</code>
登录后复制

以上是如何在 MySQL 分页中保持随机排序而不重复或固定首页结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!