2010-12-15 11 views
0

Ich habe eine Tabelle, die Noten von Benutzern meines Spiels speichert - was ich tun möchte, wenn möglich ist, ihren Rang mit mySQL allein finden (weil, wenn die Anzahl der Spieler exponentiell zunimmt die php loop mal um die gesamte datenbank zu parsen wird drastisch zunehmen.Finden Sie rownum aus mySQL Ergebnis für das Ranking

Bisher konnte ich diese Aussage bekommen

select @rownum:[email protected]+1 'rank', s.* from top100 s, (select @rownum:=0) r order by score desc 

ein Ergebnis zurück gesetzt mit Rankings angewendet - was ich brauche, um der Lage sein, dann zu tun ein einzelnes Element innerhalb feststellen, dass unter Verwendung einer Unterabfrage Finde die Spieler, die zuletzt aus einer vorherigen Einfügung insert_id sind.

Jede Hilfe würde sehr geschätzt werden.

Antwort

1
SELECT t.*, 
     (SELECT COUNT(*) 
      FROM top100 t2 
     WHERE t2.score > t.score) AS rank 
    FROM top100 t 
WHERE id = LAST_INSERT_ID() 
+0

Vielen Dank, sorry für die Verzögerung - hatte viele andere Dinge zu behandeln :) Ich gebe es bald – mmuller

+0

zerkms gehen, sollte ich nur den Code verwenden und meine eigenen entfernen oder so verwende ich Ihnen in Verbindung mit meinen eigenen? – mmuller

+0

@mmuller: Ich denke, dass meine Abfrage die Arbeit erledigt, nicht wahr? – zerkms

Verwandte Themen