利用group by查询id最大那条的数据

介绍了一种不通过连接表查询最大ID的方法来获取特定字段最大值的技巧,适用于支付金额等场景,确保即使在大量数据中也能快速找到最近更新的记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时会有这样的需求,需要查询字段a相同的所有数据里面的ID最大的某个数据

比如说账单都是按时间插入的,我们要查询 洗脚 账单里面 最近更新 的那条的支付金额

一般来说,如果支付金额在数据库里面做了严格限制或者现实情况不可能出现更大的金额
假设不超过1000块
那么我们可以
select max(id*1000+金额) -max(id*1000) from table;
这就是我们需要的数据,这样查询就可以避免联表查最大ID了。

因为max(id*1000+金额)必定是最大的ID那条才可能取这个数据,减去 id*1000 自然就得到金额了

id之间最小差距是1,所以与ID相乘的应该大于金额,这样就可以保证无论如何,ID更大 id*1000+金额 就更大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值