Ilja: mysql query gesucht

Beitrag lesen

moin,

Nun möchte ich innerhalb eines Zahlenbereiches (z.b. von 500-5000) immer die nächst freie (=unbelegte) Zahl dieser Spalte ermitteln.

du willst quasi alle datensätze, die -> nicht <- in den zahlenbereich vorkommen und davon dann den kleinsten. das ist immer ein wenig schwieriger, etwas nicht vorhandenes aus der Datenbank heraus zu bekommen, aber nicht unmöglich.

ein weg, den ich mir vorstellen kann ist der, dass du dir alle datensätze aus dem zahlenbereich ausgibst, die keinen direkten nachfolger (+1) haben und davon den kleinsten MIN() und eben der +1. ich lasse mal das problem mit den nicht zahlen zeichen weg und tue so, als wäre es ein reiner integer wert.

SELECT MIN(t1.spalte) + 1
FROM tabelle t1
WHERE t1.spalte BETWEEN 500 AND 5000
AND NOT EXISTS (SELECT NULL
                FROM tabelle t2
                WHERE t2.spalte = t1.spalte + 1
               )
;

Ilja