巧用MySQL的临时变量之四:如何找出一个表中自增字段中间的空缺的数据段

本文介绍如何使用MySQL临时变量找出表中自增字段的空缺数据段,通过与上一行值的差异计算可用区间,提供了一个实际操作示例。
摘要由CSDN通过智能技术生成

巧用MySQL的临时变量之四:如何找出一个表中自增字段中间的空缺的数据段

有时,我们很想知道一个表的某个不重复的流水号字段,中间空缺多少?能不能找出一段足够大的空缺,来给另一系统用。
在这里插入图片描述
测试数据就不准备,自己找一个表,把相应的表名,字段换一下即可。
在这里插入图片描述
– 找可用段, 从一个流水号中找出中间空缺的数据段。
SELECT (Q.auto_id - Q.与上一行的差 + 1) AS 可用段开始, (Q.auto_id - 1) AS 可用段结束, Q.与上一行的差 AS 可用数
FROM(
SELECT auto_id, (auto_id - @hh) AS 与上一行的差, (@hh := auto_id) AS 下一行用到的上一行
FROM my_table, (SELECT @hh := 0) t
ORDER BY auto_id
) AS Q
WHERE Q.与上一行的差 > 40000;
运行效果如下图:
在这里插入图片描述
你只要把表名my_table,字段名auto_id 替换一下即可测试。

总结:通过MySQL的临时变量,可以巧妙地获得上一行记录的值,从而方便地与下一行进行各种运算。妙!高!实在是高!

加粉丝看
MySQL技巧系列之《未经证实的葵花宝典》:一篇可以当饭吃的MySQL文章,值得收藏

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值