![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 21.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cześć!
Mam problem i nie umiem go rozwiązać, a chciałbym, jeśli to możliwe, zapiąć wszystko w jedno zapytanie. Moje zapytanie w chwili obecnej wygląda tak: $sql = "SELECT * FROM ranking, userki WHERE ranking.status=0 AND userki.userid = ranking.rankid ORDER BY punkty DESC, bilans DESC LIMIT $s,100;"; Efektem tego zapytania jest wynik: Lp Player S Pld W D L GS GC GD Pt 1 palune8 0 0 0 0 0 0 0 0 1600 2 nazimilan 0 0 0 0 0 0 0 0 1600 (...) 19 quickie1 - 0 0 0 0 0 0 0 1600 20 Omartje1993 4L 4 0 0 4 1 12 -11 1498 21 bahae 4L 15 2 3 10 12 29 -17 1417 W tabeli z której pobieram dane jest pole o nazwie mecze (w tabelce wyzej nazywa sie to Pld, punkty z zapytania to w tabelce Pt). Marzy mi się modyfikacja zapytania, która spowoduje, że wszystkie rekordy, w których Pld = 0 będą wyświetlane na samym dole, po rekordach, które Pld mają większe od 0, wówczas tabelka wyglądałaby tak: Lp Player S Pld W D L GS GC GD Pt 1 Omartje1993 4L 4 0 0 4 1 12 -11 1498 2 bahae 4L 15 2 3 10 12 29 -17 1417 3 palune8 0 0 0 0 0 0 0 0 1600 4 nazimilan 0 0 0 0 0 0 0 0 1600 (...) Jakieś pomysły? AW |
|
|
![]() |
![]()
Post
#2
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Do ORDER BY dodać jeszcze ' Pld DESC ' ?
|
|
|
![]()
Post
#3
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 21.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Znalazłem rozwiązanie sam. Może komuś się przyda.
To co proponowaliście nie przejdzie. Ja nie chce uzyskać sortowania wg liczby meczów. Ja chcę zachować sortowanie wg liczby punktów, przy czym zależy mi, żeby na końcu byli Ci co mają 1600 pkt (taki jest poziom startu rankingu), ale nie rozegrali jeszcze ani jednego spotkania. Idealnie rozwiązuje mój problem poniższe zapytanie: $sql = "SELECT * FROM ranking,userki WHERE ranking.status=0 AND userki.userid = ranking.rankid ORDER BY CASE WHEN mecze > 0 THEN 0 ELSE 1 END, punkty DESC, bilans DESC LIMIT $s,100;"; Chyba tłumaczyć nie trzeba. Takie wirtualne kryterium sortowania rozwiązało sprawę. Ten post edytował aros 11.01.2010, 00:33:10 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.09.2025 - 09:44 |