php - 怎么查出缺少的那条数据
PHPz
PHPz 2017-04-11 10:26:36
[PHP讨论组]

比如我现在有999条数据,id是1到1000,怎样用sql语句,查出缺少的那个id是什么?
PS:如果缺的是两条数据呢?

PHPz
PHPz

学习是最好的投资!

全部回复(2)
ringa_lee
(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 来承受~

<?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中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号