【发布时间】:2016-09-15 17:07:35
【问题描述】:
我有表 Post,用户可以通过关键字查找来搜索 Post。
所以,我通过like 关键字和RAND() 的顺序使用SQL 查询。 当显示结果时,我使用 GridView 和分页数据。并且有问题,当转到另一个页面时。第 1 页的示例使用相同的关键字转到第 2 页。我将再次查询并按 Rand() 排序。所以第 1 页中的一些数据可以出现在第 2 页中。 该数据重复且不好。
那么我该如何解决这个问题。转到其他页面时的数据查询与第一次查询中的数据相同。
我在项目中使用 Yii2。
【问题讨论】:
-
好吧,您将查询限制为(例如)20 个结果并使用
ORDER BY RAND(),对吗?但是在 MySQL 中,ORDER在LIMIT之前应用,所以你总是得到随机结果然后你限制它们,这就是为什么它们中的一些出现在其他页面中的原因。顺便说一句,为什么需要使用RAND()?当您想使用页面获得结果时,不建议这样做。 -
是的,客户端需要随机数据。并要求查询所有数据。我找到了随机项目的解决方案。我没有随机使用mysql。查询数据时,我不使用随机数,当向用户显示结果时将由 php 随机数。以及何时再次访问。我将在第一页随机使用相同的规则。所以我不知道具有相同结果的随机数组的确切 php 函数(按某些条件添加)