怎麼查出缺少的那條數據

WBOY
發布: 2016-09-24 09:15:08
原創
1317 人瀏覽過

像我現在有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 < $num; $j++) {
            $res[] = $arr[$i] + $j;
        }
    }
}

var_dump($res);</code>
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!