栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mysql分页使用order by + limit 数据重复坑

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql分页使用order by + limit 数据重复坑

不经意发现的一个问题:mysql查询数据时使用 order by 和 limit 导致查询数据重复。
来源项目里的一个业务,查询自己的历史记录,每次查一条,先去数据库找到对应主键ID,再去缓存里取数据:

语句A:select id from example_table order by update_time desc limit 2,1;
语句B:select id from example_table order by update_time desc limit 3,1;

日志一打,发现A和B语句查询出来的ID是一样的,但是使用select * 就没有问题,咋办,百度。

【MySQL的排序默认情况下是以主键ID作为排序条件的,也就是说,如果在update_time相等的情况下,主键ID作为默认的排序条件,不需要我们多此一举加ID asc。但是事实就是,MySQL再order by和limit混用的时候,出现了排序的混乱情况】

排查数据,有update_time一致的两条数据,导致问题出现,修改完事。
select id from example_table order by update_time,id desc limit 3,1;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881802.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号