Heim >Backend-Entwicklung >PHP-Tutorial >So finden Sie die fehlenden Daten heraus

So finden Sie die fehlenden Daten heraus

WBOY
WBOYOriginal
2016-09-24 09:15:081340Durchsuche

Zum Beispiel habe ich derzeit 999 Daten mit IDs im Bereich von 1 bis 1000. Wie kann ich SQL-Anweisungen verwenden, um die fehlende ID herauszufinden?
PS: Was passiert, wenn zwei Daten fehlen?

Antwortinhalt:

Zum Beispiel habe ich derzeit 999 Daten mit IDs im Bereich von 1 bis 1000. Wie kann ich SQL-Anweisungen verwenden, um die fehlende ID herauszufinden?
PS: Was passiert, wenn zwei Daten fehlen?

<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>

Es wird nicht empfohlen, die SQL-Anweisung zum Ausführen solch komplexer Vorgänge zu verwenden, anstatt die Belastung der Datenbank zu erhöhen, ist es besser, sie PHP tragen zu lassen~

<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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn