在oschina看到一道问答题,一看题一点思路也没有。忍不住看了答案,对连接查询又重新认识了一下。
题目:有一张数据表的主键ID,是自增的,但有时候存在一些重复记录,清除重复记录之后,就出现了ID不连续的情况(如下图),现要新增一条记录,其ID要为最小的中断值(下图的最小中断值2),请写出最简单的SQL语句?
答案很精简
select min(a.id)+1 from test a left join test b on a.id=b.id-1 where b.id is null;
"test" is your table name:) 还有一些其它的解决方法
http://www.oschina.net/question/111204_32051