比如我现在有999条数据,id是1到1000,怎样用sql语句,查出缺少的那个id是什么?
PS:如果缺的是两条数据呢?
比如我现在有999条数据,id是1到1000,怎样用sql语句,查出缺少的那个id是什么?
PS:如果缺的是两条数据呢?
<code>(1+2+...+1000) - sum(id) 不就行了吗?</code>
<code>第一个 select t.id from (select @rownum:=@rownum+1 no,id from table, (SELECT @rownum:=0) r)t where t.no - t.id = 1 limit 1 第二个 select t.id from (select @rownum:=@rownum+1 no,id from table, (SELECT @rownum:=0) r)t where t.no - t.id = 2 limit 1</code>
不推荐用 SQL
语句来执行这种复杂操作,与其给数据库增加负担,不如让 PHP
来承受~
<code><?php $arr = [1,4,8,9,10,20]; // 假设这是从数据库中读取出来的ID数组 $res = []; for ($i = 0; $i < count($arr)-1; $i++) { if (($num = $arr[$i+1] - $arr[$i]) > 1) { for ($j = 1; $j </code>