首页 > 解决方案 > 创建新记录时,Mysql 偏移量和限制会给出模棱两可的结果

问题描述

我有一个说提醒列表,我从Database排序依据createdAt中获取limit = 10offsetSent最初为 0,计算为,当获取发生时,服务器返回一个 param lastOffset = offsetSent + lengthOfRecordsFound。现在的问题是,当我创建一个新记录时,refresh列表通过发送一个 ajax 请求,它返回给我最后一条相同的记录,因为新记录被添加到顶部并且offset仍然是相同的。

有没有人有解决这个问题的方法?

标签: mysqlsqlsequelize.js

解决方案


我的猜测是这createdAt不是唯一的(为什么要这样做?)。您需要提供完全确定的排序顺序,否则您使用的任何分页方法都会随机失败。

-- Latest
ORDER BY createdAt DESC, reminderId DESC

-- Oldest
ORDER BY createdAt, reminderId

推荐阅读