我在我的网页上进行了高级搜索,现在这是如何工作的如下。进行搜索时,内容页面上会出现随机结果,现在此页面上也包含了分页,因此我的问题是,每次访问者进入第一页时,都会出现不同的结果。是否可以对此使用分页,或者排序将始终是随机的。

我正在使用像这样的查询

SELECT * FROM table ORDER BY RAND() LIMIT 0,20;

最佳答案

您应该使用MySQL RAND的种子来获得一致的结果。在PHP中,您可以执行

$paginationRandSeed = $_GET['paginationRandSeed']?
    ( (int) $_GET['paginationRandSeed'] ):
    rand()
;

在MySQL中,您使用该种子
"SELECT * FROM table ORDER BY RAND(".$paginationRandSeed.") LIMIT 0,20"

当然,您需要在页面请求中传播初始种子。

祝你好运,
阿林

09-15 13:47