예를 들어, 현재 1부터 1000까지의 ID를 가진 999개의 데이터가 있습니다. SQL 문을 사용하여 누락된 ID를 찾으려면 어떻게 해야 합니까?
PS: 두 개의 데이터가 누락되면 어떻게 되나요?
예를 들어, 현재 1부터 1000까지의 ID를 가진 999개의 데이터가 있습니다. 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 < $num; $j++) { $res[] = $arr[$i] + $j; } } } var_dump($res);</code>