解决方案Mysql随机查询在转到另一页时迁移

时间:2016-09-15 08:39:39

标签: php mysql

我有表格帖子,用户可以通过关键字查找帖子。

所以,我使用类似关键字的SQL查询和RAND()的命令。 当显示结果时,我使用GridView和Pagination数据。并且有问题,当去另一页时。第1页的示例使用相同的关键字转到第2页。我将再次查询并由Rand()订购。因此,第1页中的某些数据可以显示在第2页中。 那些数据重复而且不好。

那么我该如何解决这个问题呢。和goto page other时的数据查询与第一个查询中的数据相同。

我在项目中使用Yii2。

1 个答案:

答案 0 :(得分:0)

好的,我想我明白了。示例MySQL查询:

SELECT * FROM articles WHERE name LIKE '%tag%' LIMIT 0, 20;

或者你可以使用MySQL的MATCH()而不是LIKE,这没关系。然后LIMIT 0, 20是限制,显示第一页的结果数量。对于第二页,它应该是LIMIT 1, 20。这个你知道我除外。然后你在PHP中得到一个结果数组,并希望得到随机值。 PHP有这样的功能,它被称为 suffle()

因此,您只需使用shuffle($results);,然后就可以使用foreach或任何用于打印数据的内容进行打印。请注意shuffle()返回布尔值,因此请勿使用$results = shuffle($results);。希望这会有所帮助。