11 Stimme

MySQL: Nächstmögliche freie Zahl nach einer Zahl finden

Frage von PC Control | 17.02.2012 um 19:23

Ich möchte mit MySQL die nächstmögliche noch nicht vergebene Zahl nach einer Vergleichszahl finden. Dazu mal das folgende Beispiel:

1  
2
3   --> hier käme 4
10
11  --> hier käme 12
20
21
22  --> hier käme 23

Beispielsweise möchte ich nach der Suche nach der nächsthöheren möglichen Zahl nach 1 auf 4 kommen, suche ich nach 10 soll 12 das Ergebnis sein und suche ich nach 20 soll 23 das Ergebnis sein.

Gibt es dafür eine Möglichkeit dies in MySQL zu verwirklichen?

AntwortenPositivNegativ
5Beste Antwort5 Stimmen

Mit folgender Abfrage sollte es funktionieren. Du musst noch den Namen deiner Tabelle für "tabelle" einsetzen und "id" mit dem Namen deiner Spalte ersetzen, in der die Werte stehen.

SELECT MIN(tabelle.id + 1)
FROM tabelle
LEFT JOIN tabelle AS temptab
ON tabelle.id + 1 = temptab.id
WHERE temptab.id IS NULL AND tabelle.id >= 10

In der letzten Zeile hinten ersetzt du die 10 durch deinen Vergleichswert. Angewendet auf das obige Beispiel sollte diese Abfrage den Wert 12 ausgeben.
19.02.2012 um 10:52

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.