我需要有关执行以下操作的查询的帮助:
- 从最新的记录开始,向下到较旧的记录。
- 它需要按 created_at 时间排序。
- 如果在 created_at 时间数据库中有新记录,则检索它们但不要获取我从步骤 1 中获得的记录。
- 我只想一次只获得 16 条记录。这个数字以后可能会改变。
- 不要检索我之前发送的记录。
也只是为了让您知道,这是通过 $.ajax 启动的。
这样做的原因是因为我正在将新旧记录实时发送给客户。想想像用户开始访问网站并从新记录开始获取当前记录。然后用户可以去获取较旧的记录,但在同一请求下,它也检索全新的记录。一次只有 16 条记录。
我说得有道理吗?
这是我目前拥有的代码:
RssEntry.includes(:RssItem).where("rss_items.rss_id in (?) AND (rss_entries.id < ? OR rss_entries.created_at > ?)", rssids, lid, time).order("rss_entries.id DESC").limit(16)
lid = last lowest id from those records
rssids = ids from where to get the records
time = last time it did the records call
上面的代码只是开始。我现在需要帮助以确保它符合我的上述要求。
更新 1
好的,所以我设法做我想做的事,但在 2 个 sql 查询中。我真的认为不可能在一个 sql 查询中做我想做的事。
任何帮助是极大的赞赏。
谢谢。