解决方法: order by 里增加唯一标识 比如id字段(在表里一定是唯一的字段)
背景: 今天在测试功能的时候发现 景点列表里 第7页和第8页的数据有重复的几条
刚开始以为是图像和名称一样 看了接口之后发现id也一样 瞬间感觉这问题不简单
1. 有问题的sql是这样的
SELECT `id`, sort FROM `A` ORDER BY
`sort` ASC
LIMIT 36, 6;
SELECT `id`, sort FROM `A` ORDER BY
`sort` ASC
LIMIT 42, 6;
中间有三条数据是重复的
2. 网上找了一下相关的问题 解决方法就是 排序里增加一个唯一的标识 (因为mysql 排序字段的值相同的话 可能会出现此问题)
3. 修改后的sql 注意 order by里的字段
SELECT `id`, sort FROM `A` ORDER BY
`sort` ASC , id desc
LIMIT 36, 6;
SELECT `id`, sort FROM `A` ORDER BY
`sort` ASC, id desc
LIMIT 42, 6;
没有重复的了