具有随机排序的 PHP MySQL 分页
在 MySQL 分页中维护随机排序可能会在试图防止重复结果并确保不同的集合时带来挑战第一页。以下是这些问题的解决方案:
1。防止重复结果
要排除后续页面上以前看到的结果,请使用基于以前提取的行的排除条件来增强 SQL 查询。利用 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;";
2.首页上的结果不同
是的,通过向 RAND() 函数引入种子值,可以使用随机排序的分页。通过改变种子(例如,基于时间或用户的IP地址),您每次可以获得不同的结果集。
3.使用 RAND(SEED)
使用 RAND(SEED) 指定种子值来影响随机排序。通过设置一个常整数作为种子,可以控制结果序列:
$seed = 521; // Example seed value
$query = "SELECT * FROM table ORDER BY RAND(" . $seed . ") LIMIT 0,10;";
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3