MySQL分页(按喜欢排序)

时间:2018-08-04 18:36:40

标签: php mysql

我正在尝试创建一个iOS社交应用程序,用户可以在该应用程序中发布并喜欢。

我制作了该应用,并且新闻提要通过以下因素加载帖子:

  • 按喜欢的顺序排序

所以最喜欢的帖子在顶部。

我也在使用分页,因此如果用户向下滚动它会加载更多帖子。


问题是,如果同时加载帖子,则某些帖子获得了更多的赞,那么它可能返回不正确的排序,并且结果中可能缺少一些帖子。


例如,在这种情况下,分页仅加载2个帖子。

完整的数据库:

POST A: 10 likes
POST B: 8 likes
POST C: 7 likes
POST D: 6 likes

打开应用

该应用程序加载以下数据:

POST A: 10 likes
POST B: 8 likes

让我们假设POST C同时获得了+10的点赞

(最新帖子为B)

在加载更多2条帖子后,该应用具有以下数据:

POST A: 10 likes
POST B: 8 likes
POST D: 6 likes

我该如何解决?

1 个答案:

答案 0 :(得分:1)

如果您正在加载记录并且它们可以同时更改,那么也许这不是最佳方法。因为POST C在获得+10个赞之后将是赢家,所以它将不会在第二次加载中显示。

可以这样显示它吗?

  • 帖子A:10个赞
  • 帖子B:8个赞
  • POST C:17个赞
  • POST D:6个赞

如果为正,则可以按日期,喜欢而不是仅按喜欢对查询进行排序。因为,如果您的前提是将其显示为“喜欢排序”,则您不能假定值可以同时更改。实现此目的的唯一方法是加载所有排名一次,然后在记录之间进行分页,同时没有任何更改问题。