Neue n00b-Frage:
Eine Tabelle mit Datensätzen und UserIDs, welche sortiert wird.
Userid Kriterium
2 ------ a
7 ------ b
4 ------ c
...
Wie bekomme ich jetzt auf die schnelle heraus, auf welchem Platz z.B. UserID 7 liegt? (Hier Platz 2)
Meine derzeitige Lösung alles abzurufen und zu zählen ist inakzeptabel.
[SQL] Gebe Zeilenplatz aus
gepostet vor 18 Jahre, 9 Monate von Klaus
gepostet vor 18 Jahre, 9 Monate von TheUndeadable
SELECT COUNT(*) FROM x WHERE userid <= 7;
gepostet vor 18 Jahre, 9 Monate von Klaus
und wenn noch einige User mit höhere ID davor liegen? Es wird ja nicht nach der ID sortiert.
gepostet vor 18 Jahre, 9 Monate von TheUndeadable
Verlass dich niemals auf die Reihenfolge, in der Daten in der Db liegen. Diese werden bei der nächsten internen Optimierung umgeworfen.
gepostet vor 18 Jahre, 9 Monate von Klaus
das ist egal, ich hab doch noch ein ORDER BY drin.
gepostet vor 18 Jahre, 9 Monate von BLUESCREEN
Warum willst du wissen, an welcher Position ein bestimmter Datensatz gerade liegt?
Das sollte für deine Anwendung einfach nicht nötig sein, bzw. es sollte Sache des DBMS sein, wo das nun gespeichert wird...
Das sollte für deine Anwendung einfach nicht nötig sein, bzw. es sollte Sache des DBMS sein, wo das nun gespeichert wird...
gepostet vor 18 Jahre, 9 Monate von Kampfhoernchen
Ich denke er will so ne Art Ranking erstellen, oder?
gepostet vor 18 Jahre, 9 Monate von Klaus
Genau darum gehts, deswegen ja die Sortierung. Ich mache das nun so das erst die Punkte geholt werden und dann gezählt wird, wieviele besser sind.
gepostet vor 18 Jahre, 9 Monate von TheUndeadable
SELECT points FROM players WHERE id=5;
SELECT COUNT(*) FROM players WHERE points >= [resultat vom 1.]
SELECT COUNT(*) FROM players WHERE points >= [resultat vom 1.]