当前位置:网站首页>MySQL LIMIT + order by limit n,m 和 limit n的小坑
MySQL LIMIT + order by limit n,m 和 limit n的小坑
2022-08-09 05:12:00 【愤怒的苹果ext】
背景
- 场景:数据刚刚初始化,
order by的字段值一样
,想获取列表的第一条数据,但是发现limit
后不是第一条。
看数据
- 此时有3条数,id分别为38 、39、40。
limit n
- 此时查询到的数据是id为40的。
limit n,m
问题
注意:问题发生的场景
order by
的两个值是相等的。然后limit
- 其实我要的是id为
39
那条数据,但我取一条的时候总是返回了id为40
的数据。 - 这个问题是在排序字段数据内容相同的情况下出现,而且不稳定。
- 有可能下一页还会看到前一页的数据。
解决方案
第一种:增加排序字段索引,多个字段增加联合索引
增加索引
查询结果
第二种:排序增加一个唯一字段,例如id,获得稳定排序
第三种方式:代码获取第一条数据
- 这是我目前使用的方式,因为我只需要第一条诉,我查询了列表(取消了limit),然后Java代码获取列表的第一条。
边栏推荐
猜你喜欢
随机推荐
Docker部署MySQL
perl基础语法归纳
算法---优美的排列(Kotlin)
C进阶-C语言文件操作
【Harmony OS】【FAQ】鸿蒙问题合集1
el与data的
aur安装报错一个或多个文件没有通过有效性检查!
could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarExcept
Quantitative Genetics Heritability Calculation 1: Parent-Child Regression Method
【HMS core】【ML kit】机器学习服务常见问题FAQ
mysql content does not exist error
【Harmony OS】【ARK UI】Date Basic Operation
Faced with risk control, what should Amazon do when evaluating self-supporting accounts?
如何一键进行Win11系统的重装?
什么是通用微处理器、单片机、DSP芯片、嵌入式系统?
dsafasfdasfasf
Pycharm Debug调试使用+代码调试理解
Oracle02-sql学习(单表查询,exists子查询,函数入门)
C Advanced-C Language File Operation
flask——介绍、安装、快速使用、配置文件、路由系统、视图