kostenloser Webspace werbefrei: lima-city


MySQL mehrfach 2 Zeilen miteinander vergleichen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    therealkillerinstinkt

    therealkillerinstinkt hat kostenlosen Webspace.

    Hi, habe ein Problem. Bin mir nicht sicher, ob es ?berhaupt m?glich ist (ich denke eher nicht). Habe auch schon viele Leute gefragt, aber keiner konnte helfen...

    Also zu meinem Problem:

    Ich m?chte aus einer Tabelle in meiner Datenbank je 2 Zeilen miteinander vergleichen bzw. Werte berechnen lassen.
    Hier mal ein kleines Beispiel wie die Tabelle aussehen k?nnte:

    Name-----Punkte-----Datum
    Schlumpf-----5004-----1153606230
    Terrakotta-----1084-----1153607230
    Schlumpf-----3085------1153608230
    Schlumpf-----2917------1153609230

    Wenn ich jetzt daraus Den Punktezuwachs von dem Nutzer "Schlumpf" berechnen will w?rde das ja so gehen:
    SELECT t1.Punkte - t2.Punkte AS Punkte FROM Datenbankname AS t1, Datenbankname AS t2 WHERE t1.Name = 'Schlumpf' AND t2.Name = 'Schlumpf' ORDER BY t1.Datum DESC;

    Das Problem dabei ist jedoch, dass er jeden Eintrag von Schlumpf mit jedem Eintrag vergleicht... er soll jedoch nur den 1. Eintrag mit dem 2. Eintrag und den 2. Eintrag mit dem 3. Eintrag vergleichen...
    Vllt wei? ja wer ne L?sung
    (ich wei?, dass man mit WHERE t1.Datum = 1153606230 AND t2.Datum = 1153608230 es realisieren k?nnte, aber dann muss man f?r jede Berechnung des Punktezuwachs zwischen zwei Zeitr?umen eine eigene SQL-Anfrage abschicken)
    mfg
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e********l

    Ich sch?tze mal du willst eine History f?r den Punktezuwachs erstellen oder?
    Das solltest du anders realisieren. Einfach in der Spieler Tabelle die aktuellen Punkte speichern und in einer extra History Tabelle den jeweiligen Zuwachs eintragen. ID vom Spieler zupacken und das Datum nicht vergessen.

    Hoffe ich hab die Problematik richtig erkannt. Eine performante L?sung f?r dein Problem gibt es nicht wirklich, da du immer die IDs der zu vergleichenden Eintr?ge ben?tigst.
  4. Nuja..wenn du nur zwei Eintr?ge abfragen willst ben?tze am Ende deines Querys ein LIMIT = 2 ;)

    Das bewirkt dass h?chstens zwei SPalten abgefragt werden ;)
  5. e********l


    Nuja..wenn du nur zwei Eintr?ge abfragen willst ben?tze am Ende deines Querys ein LIMIT = 2 ;)

    Das bewirkt dass h?chstens zwei SPalten abgefragt werden ;)

    bei 1000 zu vergleichenden Werten sind das noch immer 1999 Abfragen -.-
  6. Mein Vorschlag w?re beim schreiben vergleichen ...
    Also sofort den Punktewachstum in neue Tabelle / neues Feld in ursprung DB ...

    Spieler Punktewachstum Punkte T1 T2
    ... ... ... ... ...

    Und dann aus dieser Tabelle lesen, um alle daten des Spielers zu bekommen um z.B. eine Wachstum grafik zu machen einfach Select * ... Where Spieler='...'

    Dann immer ein Clean script laufen lassen, um ?ltere Werte weg zu killen ...


    Das w?rde das Problem sicher l?sen ;)
    Obs du dir so vorgestellt hast :slant:
    ist mal eine andere sache
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!