Thomas Schmieder: MySQL: Workaround für NEXT und PREVIOUS gesucht

Beitrag lesen

Hi Sven,

die rote Fehlerlampe rotiert schon wieder. Au weia.

für PREVIOUS:

Select Kunde, ID from kontakte where ID < 19 order by kunde,id Desc limit 1

ich müßte also nach "where kunde+ID < letzterKunde+ID ..." abfragen
(Pseudecode)
Geht das überhaupt? kann man in der whereklausel zwei Felder als Strings addieren?

Tja, die Frage ist nur, ob dir das wirklich weiterhilft. Ich denke, du kriegst auf diese Weise es zwar in den Griff, nacheinander die IDs durchzukaspern, aber nicht, so nacheinander die Namen durchzukaspern.

Zuerst ganz kritisch angucken würde ich die Reihenfolge der Sortierung. Denn es wird zuerst nach Namen sortiert, dann nach IDs. Du kannst also dadurch folgenden Fall erhalten (je nachdem, in welcher Reihenfolge die Namen eingetragen wurden!):

ID   Name
3    Meier
4    Meier
1    Müller
5    Müller
2    Walther

Sortiert nach Namen und dann nach IDs.

Angenommen, du bist jetzt bei der ID 4 - Dann wäre der nächste Datensatz die ID 1. Du selektierst aber nur die IDs, die größer als die 4 sind, also ID 5. Damit fällt der Müller/ID 1 aus deiner Liste heraus.

Ja, meine vermeintliche Lösungsmethode funktioniert nur für die Duplicates. War aber nicht so gedacht.

Ich bastel noch ein bisschen. Ich will vor allem, das das Resultset nicht wächst bis zum Abwinken.

Wie groß darf das denn werden? Wird das auch auf die Platte ausgelagert, wenn es zu groß wird? Da stehen ja wohl nur Zeiger auf die eigentlichen Daten drin, oder? Dann wären es aber immer noch mindestens 8 Byte pro Feld, das man selected hat.

Wird wohl doch 'ne längere Geschichte. Ich sag schon mal den Termin morgen ab...

Wenn ichs noch hinbekomme, gebe ich einen aus. Du hast jetzt schon zwei dicke Fehler gefunden!

Grüße

Tom