是否可以在随机排序的mysql查询中使用zend paginator?
我正在努力绕过这个。
答案 0 :(得分:3)
ORDER BY RAND()将(不加思索地)在每次运行时返回随机结果,因此您将无法以正常方式对其进行分页。
您必须在第一次运行中选择所有数据,记录元素的顺序并在任何后续页面上使用它。或者,您可以选择所有数据并使用Ajax进行分页。这两种方法都是相当有用的工作。
答案 1 :(得分:0)
可以使用mysql rand(n)函数。
“n用作种子值,它产生可重复的列值序列”
所以只需添加到您的选择中 - 例如
SELECT
rand(21) AS ord
FROM
TABLE
ORDER BY
ord
每次你使用不同的结果集时,只需将21更改为其他内容。
http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand
答案 2 :(得分:0)
您可以使用ORDER BY RAND({seed})
,如here所述(使用zend集成)。