扫码关注官方订阅号
比如我现在有999条数据,id是1到1000,怎样用sql语句,查出缺少的那个id是什么?PS:如果缺的是两条数据呢?
学习是最好的投资!
(1+2+...+1000) - sum(id) 不就行了吗?
第一个 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
不推荐用 SQL 语句来执行这种复杂操作,与其给数据库增加负担,不如让 PHP 来承受~
SQL
PHP
<?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);
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
不推荐用
SQL语句来执行这种复杂操作,与其给数据库增加负担,不如让PHP来承受~