phpbar.de logo

Mailinglisten-Archive

Re: Query um möglichst kleine Freie Zahl zu erhalten
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Query um möglichst kleine Freie Zahl zu erhalten




Bruno Haller wrote:

>Hallo,
>ich hatte schonmak eine Lösung hierfür, hab Sie aber irgendwie
verschlampert.
>Wie krieg ich aus einer Spalte "userID", die durchnummeriert ist mit
Integern die niedrigste >freie.
>Also z.b. gibt es die IDs: 1,2,3,4,5,6,7,8,9,10
>Jetzt entschliesst sich User 3 und 7 sich rauszulöschen.
>Die Query muss nun 3 ergeben, beim nächsten mal (wenn 3 wieder belegt ist)
soll 7 rauskommen.

Ich hab zwar keine direkte Lösung für dich. (Ausser Row um Row durchzugehen
= langsam) aber vielleicht hilft dir meine Lösung für das selbe Problem:

1. Ich erstelle in jeder Tabelle ein LoeschFlagFeld (z.B int).
2. Dieses Feld ist indiziert.
3. Normalerweise(bei gültigen Datensätzen) hat diese Feld den Inhalt 0.
4. User sehen in Abfragen über eine Applikation nur Datensätze bei denen
LoeschFlagFeld=0.
5. Ich lösche 3 und 7 nicht wirklich sondern setzte das gelöscht Flag auf 1.
(z.b INT)
6. Wenn ich die niedrigste 'freie' Nummer suche nehme ich "select
min(NUMMER) where LoeschFlagFeld=1)
7. Das ist auch bei grossen Datensatzmengen (zur Zeit 2 Mill. Rows) sehr
schnell.


Paul



Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive