mysql 使用limit 和 orderby 进行分页遇到数据重复的坑
根据官网查到的解释,
mysql会对后台执行的limit语句进行优化。
1. 当组合使用 LIMIT
with row_count
ORDER BY
, mysql会在找到排序结果的一个row_count 后立即停止排序,而不是对整个结果进行排序。
2. 如果order by列有相同的值,那么MySQL可以自由地以任何顺序返回这些行。换言之,只要order by列的值不重复,就可以保证返回的顺序.
目前解决方式:
可以在orderby 子句中添加列,添加有索引的字段,比如主键 ID。这样在排序时可以保证顺序稳定。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现