查询数据库从某个id开始

时间:2016-12-31 12:51:30

标签: mysql sql ruby-on-rails

我的应用程序的功能就像Tinder。我将完成工作流程。

  • 应用加载10 PyRun_SimpleString(buffer);(类似于火种配置文件)
  • 用户接受或拒绝
  • 一旦用户接受或拒绝,将删除寻线(标记为已显示,以便它不会再次返回)
  • Hunts计数变为2时,app会加载下10次搜索。 (这不是第二页,Hunts狩猎已被删除

这是棘手的部分。当它再次查询数据库时,搜索将有2个用户尚未接受或拒绝的搜索。为避免重复,我避免回复中的前2次搜索。但是,如果在再接受或拒绝之后运行查询,则会出现问题。我会删除2个期待正常行为的搜索,但是这将删除消除一次不是重复的搜索。

在某个seen之后获得所有搜索的最佳解决方案是什么。我可以通过传递ID来使用id。但我想知道是否有更好的解决方案,因为我认为这将是一个非常常见的情况。

我希望自己非常清楚。

我想到但不太喜欢的解决方案

  1. 通过2次搜寻WHERE NOT ID IN并将其排除在结果中
  2. 在我的应用中收到回复
  3. 后,从ids删除重复项

    欢迎所有建议。我正在使用hunts,因此欢迎使用Rails解决方案。

1 个答案:

答案 0 :(得分:0)

delegatestatusunseen添加值为{0}的rejected列可能更为明智。

然后,当您的用户接受/拒绝每个项目时,请更新该列。

要获取用户的最旧(最低 - accepted - 值)项目块,请使用以下内容。

id

WHERE user=whatever AND status=0 ORDER BY id LIMIT 10 上构建索引,MySQL可以优化此查询。