19.07.2010 21:00 von TBT
[MySQL] den Fünftletzten bitte 

Hi,

kleine Knobelaufgabe am Abend

Ich habe eine Tabelle, wo Einträge mit einem Start- und einem Enddatum gemacht werden. Nun möchte ich eine Vearbeitungskette haben, welche immer nur 5 (kann später anders sein) Einträge gleichzeitig "abarbeitet". Die Abarbeitung bezieht dabei auf die aktuelle Zeit. D.h. wenn zu einem
Zeitpunkt bereits 5 Einträge laufen, soll der 6. Eintrag als Startzeit die Endzeit des ersten Eintrages erhalten.

Ist blöde zu erklären, daher kleines Beispiel:

Code
1
2
3
4
5
6
7
id start ende 1 1 5 2 2 4 3 1 7 4 1 9 5 2 8 6 4 6

zum Zeitpunkt 3 sind gerade id 1,2,3,4,5 in Abarbeitung. ID 6 kann erst starten, wenn ID 2 fertig ist, also bei Zeitpunkt 4. Nun möchte ich den Zeitpunkt ermitteln, wann ein Arbeitsplatz frei wird, in diesem Beispiel wäre es 5, da dort dann ID 1 beendet wird.
Als kleines Extra: die Tabelle kann mit sehr vielen Einträgen gefüllt ein, 100 können es locker werden. Alle sollen sich schön anstellen, so dass, immer nur 5 gleichzeitig laufen.

Am liebsten wäre mir eine SQL Anweisung, die mit den Startzeitpunkt für den neu einzufügenden Datensatz ausgibt.
Zitat

Werbung

22.07.2010 18:44 von TBT
 

hab es jetzt doch mit eine SQL Anweisung und anschließendem PHP Code gelöst,
also: erst die 5 Einträge mit höchsten Fertigstellungsdatum holen,
und davon danach in PHP das kleinste Datum raussuchen.

Da fällt mir gerade ein, mit einem Subselect könnte dies gehen, aber ob dies dann performanter ist? Ich muss das mal testen.
Zitat

ähnliche Themen

Schnellantwort