zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden MySQL Abfrage sortieren nach mehreren kriterien

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 20.10.2006, 15:55
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 26.10.2004
Beiträge: 990
psycho_dmr befindet sich auf einem aufstrebenden Ast
Standard MySQL Abfrage sortieren nach mehreren kriterien

Ich bin grade an einem Ligascript zugange und muss dort wie folgt sortieren:

"Alle Spieler die mehr als ein match haben, nach punkten sortiert vor allen Spielern die kein match haben, die dann nach name sortiert"

ich habs mit "GROUP BY matches" versucht, aber dann sind immer die, mit gleichvielen matches, zusammen bzw er gibt anscheinen immer nur einen datensatz mit der jeweiligen machtanzahl aus. ich brauche aber nur eine unterscheidung zwischen "0" und "mehr als 0"
__________________
Wer sich über Kritik ärgert, gibt zu, dass sie verdient war.
Gaius Cornelius Tacitus (um 55 - nach 115), römischer Historiker und Politiker

Geändert von psycho_dmr (20.10.2006 um 15:58 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 20.10.2006, 17:56
Benutzerbild von Prophet
Hobbyscripter
XHTMLforum-Mitglied
 
Registriert seit: 01.09.2006
Beiträge: 341
Prophet befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
... ORDER BY spalte [DESC|ASC], spalte [DESC|ASC], ...;
DESC = Absteigend
ASC = Aufsteigend

Je weitere vorne das sortierkriterium steht desto wichtiger ist es.
__________________
[SIGPIC][/SIGPIC]
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 20.10.2006, 21:05
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 26.10.2004
Beiträge: 990
psycho_dmr befindet sich auf einem aufstrebenden Ast
Standard

Ja, weiß ich..

ORDER BY points DESC, matches DESC -> die mit keinem match sind irgendwo inner mitte
ORDER BY matches DESC, points DESC -> wenn einer 10 matches hat, aber nur 1500 punkte, ist er vor jemandem, der zwar 2000 Punkte, aber nur 5 Matches hat

ich brauche jetzt ne mischung aus beidem, der mit 2000 punkten und 5 matches soll vor dem mit 1500 Punkten und 10 matches sein und beide sollen vor jemandem sein,d er 0 matches hat.
__________________
Wer sich über Kritik ärgert, gibt zu, dass sie verdient war.
Gaius Cornelius Tacitus (um 55 - nach 115), römischer Historiker und Politiker
Mit Zitat antworten
  #4 (permalink)  
Alt 20.10.2006, 21:20
Glühend, brennend Rot
XHTMLforum-Mitglied
 
Registriert seit: 12.08.2006
Ort: Riehen
Beiträge: 152
Wasili befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von psycho_dmr Beitrag anzeigen
Ja, weiß ich..

ORDER BY points DESC, matches DESC -> die mit keinem match sind irgendwo inner mitte
ORDER BY matches DESC, points DESC -> wenn einer 10 matches hat, aber nur 1500 punkte, ist er vor jemandem, der zwar 2000 Punkte, aber nur 5 Matches hat

ich brauche jetzt ne mischung aus beidem, der mit 2000 punkten und 5 matches soll vor dem mit 1500 Punkten und 10 matches sein und beide sollen vor jemandem sein,d er 0 matches hat.
Reine Spekulation:

SELECT matches, points, points/matches AS x FROM tabelle WHERE matches > 0 ORDER BY x DESC

// Allerdings kannst du so nur die auslesen mit maches > 0, die mit matches = 0 müssten nachkommen.

Geändert von Wasili (20.10.2006 um 21:22 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 20.10.2006, 21:42
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 26.10.2004
Beiträge: 990
psycho_dmr befindet sich auf einem aufstrebenden Ast
Standard

und genau da liegt das problem, das geht in dem script nicht (wegen limit)... ich müsste es also in einer abfrage schaffen. Ansonsten lass ichs so wies momentan ist.
__________________
Wer sich über Kritik ärgert, gibt zu, dass sie verdient war.
Gaius Cornelius Tacitus (um 55 - nach 115), römischer Historiker und Politiker
Mit Zitat antworten
  #6 (permalink)  
Alt 21.10.2006, 23:39
...
neuer user
 
Registriert seit: 28.08.2006
Beiträge: 49
stefan-r befindet sich auf einem aufstrebenden Ast
Standard

versuchs mal damit:
Code:
SELECT * FROM * ORDER BY FIELD(matches, 0), points DESC, name ASC LIMIT *;
Mit Zitat antworten
  #7 (permalink)  
Alt 22.10.2006, 15:26
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 26.10.2004
Beiträge: 990
psycho_dmr befindet sich auf einem aufstrebenden Ast
Standard

Code:
$sa = (isset($_GET['show_all'])) ? "" : " WHERE matches > 0";
$start = 0;
$perpage = 100;
SELECT * FROM ldr_player{$sa} ORDER BY FIELD(matches, 0), points DESC, matches DESC, nick ASC LIMIT $start, $perpage
funzt jetzt, danke
__________________
Wer sich über Kritik ärgert, gibt zu, dass sie verdient war.
Gaius Cornelius Tacitus (um 55 - nach 115), römischer Historiker und Politiker
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL Abfrage mit PHP andre-ne Serveradministration und serverseitige Scripte 8 09.04.2011 23:42
MySQL Abfrage über 3 Tabellen cvb Serveradministration und serverseitige Scripte 1 05.10.2008 15:43
Abfrage von zwei Tabellen (php/ mysql) Baronesse Serveradministration und serverseitige Scripte 1 15.07.2008 11:26
MySQL Abfrage Problem ct2oo4 Serveradministration und serverseitige Scripte 2 25.12.2007 22:08
MySQL Abfrage Problem ct2oo4 Serveradministration und serverseitige Scripte 7 15.09.2007 11:05


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:34 Uhr.