SQL笔记-检索出ID为Int或Long中不连续的第一个点

命令如下:

select MY_ID+1 from TableName where MY_ID+1 not in(select MY_ID from TableName) and MAP_ID+1<>(select max(MY_ID)+1 from TableName) limit 1

解析下:

select 
	MY_ID+1 from TableName 
where 
	MY_ID+1 not in(
			select MY_ID from TableName 
			) 
			and 
	MAP_ID+1<>(
			select max(MY_ID)+1 from TableName 
			)
limit 1

首先是:

select MY_ID+1 from TableName

他会把所有ID+1然后检索出来!然后是:

ID + 1 not in (select MY_ID from TableName)

这是把ID+1不是在ID的数选出来,随后是:

MAP_ID+1<>(select max(MY_ID)+1 from TableName)

将最大的哪个点去掉,最后是:

limit 1

为了避免表里的ID是断断续续的,只拿最小的,未连续的点。

如果是这样的需求:选出不连续的点,如果点是连续的就在最大的点上+1

sql和上面一样,就减少<>就可以了

select MY_ID+1 from TableName where MY_ID+1 not in(select MY_ID from TableName) limit 1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值