我有一张 goods 表主要有 id 、name 、recommend 这 3 个字段,其中 id 为自增主键,name 为字符串,recommend 为 int
我往表里插了 37 条测试数据,id 从 1-37,其中 id=1 的 recommend 为 0,其他剩下 36 条全为 0
在插入 37 条测试数据后,我修改过部分数据的 name 值,于是当我使用如下 SQL 语句
SELECT * FROM goods ORDER BY recommend DESC;
返回的结果 id=1 的排在第一位,剩下的 36 按自增 id 随机排列。其中 id=2 的这条记录排在倒数第二位(重点就是这一条记录)。
现在遇到一个比较奇葩的问题,我分页获取的时候
SELECT * FROM mall.goods ORDER BY recommend DESC LIMIT 10 OFFSET 0;
上面这条 SQL 语句居然第二条记录是 id=2 的数据
SELECT * FROM mall.goods ORDER BY recommend DESC LIMIT 10 OFFSET 30;
同样,上面这条 SQL 语句里也出现了 id=2 的数据,不过它出现的位置是在倒数第二位,和第一条 SQL 语句排序出现的位置一致
这啥情况?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.