MYSQL Einträge um einen Wert herum
mappo
- datenbank
Hi,
gibt es eine einfache Möglichkeit, sagen wir mal 20 Werte um einen bestimmten Wert herum ausgeben zu lassen.
Also wir haben eine Tabelle mit Namen und Punkten.
Sagen wir ich habe einen Wert den ich mit
where name=hans
bestimme. Dann möchte ich um diesen Wert herum nach Punkten sortieren.
mfg mappo
Hi,
gibt es eine einfache Möglichkeit, sagen wir mal 20 Werte um einen bestimmten Wert herum ausgeben zu lassen.
Also wir haben eine Tabelle mit Namen und Punkten.
Sagen wir ich habe einen Wert den ich mitwhere name=hans
bestimme. Dann möchte ich um diesen Wert herum nach Punkten sortieren.
Sortiere nach dem Betrag der Differenz, und LIMITiere die Menge der Datensätze, die ins Ergebnis kommen entsprechend.
MfG ChrisB
Hallo,
gibt es eine einfache Möglichkeit, sagen wir mal 20 Werte um einen bestimmten Wert herum ausgeben zu lassen.
ja klar - bilde den Betrag der Differenz zwischen dem Zielwert und dem entsprechenden Wert des Datensatzes, sortiere danach, und lass dir davon die ersten 20 Ergebnisse liefern.
Also wir haben eine Tabelle mit Namen und Punkten.
Sagen wir ich habe einen Wert den ich mit
where name=hans
bestimme. Dann möchte ich um diesen Wert herum nach Punkten sortieren.
Das verstehe ich nicht ganz - was hat hans hier für eine Bedeutung? Möchtest du die Ähnlichkeit von Namen (Strings) bewerten?
So long,
Martin
Hallo,
gibt es eine einfache Möglichkeit, sagen wir mal 20 Werte um einen bestimmten Wert herum ausgeben zu lassen.
ja klar - bilde den Betrag der Differenz zwischen dem Zielwert und dem entsprechenden Wert des Datensatzes, sortiere danach, und lass dir davon die ersten 20 Ergebnisse liefern.
Also wir haben eine Tabelle mit Namen und Punkten.
Sagen wir ich habe einen Wert den ich mit
where name=hans
bestimme. Dann möchte ich um diesen Wert herum nach Punkten sortieren.Das verstehe ich nicht ganz - was hat hans hier für eine Bedeutung? Möchtest du die Ähnlichkeit von Namen (Strings) bewerten?
So long,
Martin
Also ich habe mehrere User in der Datenbank und jeder hat ne bestimmte Punktzahl
Hans 500
Peter 1000
Michel 4456
Wenn ich jetzt einen bestimmten User herauspicke z.B. Hans, dann möchte ich die 10 besseren bzw. 10 schlechteren als Hans mit ausgeben.
Das mit dem Betrag liefert dann doch nur die 20 Werte die besser oder Schlechter sind als Hans oder?
Hi,
bitte zitiere sinnvoll, und nicht einfach alles.
Das mit dem Betrag liefert dann doch nur die 20 Werte die besser oder Schlechter sind als Hans oder?
Die Einschränkung mittels WHERE-Klausel passiert auf Datensatz-Ebene.
Welche Spalteninhalte du dir zurückliefern lässt, gibst du über die Spalten-Liste nach SELECT an.
MfG ChrisB
Jo,
bitte zitiere sinnvoll, und nicht einfach alles.
Ok =)
Die Einschränkung mittels WHERE-Klausel passiert auf Datensatz-Ebene.
Welche Spalteninhalte du dir zurückliefern lässt, gibst du über die Spalten-Liste nach SELECT an.
Das ändert doch nichts daran das ich mit einer
order_by(abs('points'-$points),DESC bzw. ASC)
Abfrage, nur die 20 Einträge bekomme die Punktemäßig vor bzw. hinter einem User stehen oder?
mfg map
Hi,
Das ändert doch nichts daran das ich mit einer
order_by(abs('points'-$points),DESC bzw. ASC)
Abfrage, nur die 20 Einträge bekomme die Punktemäßig vor bzw. hinter einem User stehen oder?
Ich hatte dich so verstanden, als ob du genau das wolltest.
Wenn du mit „20 Werte um einen bestimmten Wert herum“ irgendwas anderes meinst, dann musst du das deutlicher formulieren.
MfG ChrisB
Hi,
Ich hatte dich so verstanden, als ob du genau das wolltest.
Wenn du mit „20 Werte um einen bestimmten Wert herum“ irgendwas anderes meinst, dann musst du das deutlicher formulieren.
Achso, naja deswegen schreib ich ja "um den Wert herum" =)
Also 10 Einträge die Punktemäßig besser als der User sind und 10 Einträge die Punktemäßig schlechter sind als der User.
mfg map
Hi,
Also 10 Einträge die Punktemäßig besser als der User sind und 10 Einträge die Punktemäßig schlechter sind als der User.
Na dann mach zwei Abfragen, in denen du nur mit größer-gleich/kleiner-gleich auswählst und auf-/absteigend sortierst, und kombiniere diese zwei mittels UNION.
MfG ChrisB
Na dann mach zwei Abfragen, in denen du nur mit größer-gleich/kleiner-gleich auswählst und auf-/absteigend sortierst, und kombiniere diese zwei mittels UNION.
Also ich arbeite mit dem Kohana Framework, welches leider kein UNION unterstützt. Aber mit den zwei Abfragen und nem array_merge klappt es auch.
Danke für die Hilfe.
mfg map