Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Warunek if w sortowaniu wyniku zapytania
arzach
post 24.08.2010, 19:28:47
Post #1





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

Ostrzeżenie: (0%)
-----


Mam takie dane w tabeli

I jak to posortować tak, aby najpierw sortowało po pkt potem po

Kod
pkt_meczy_bezposrednich DESC, roznica_bezposrednich_bramek DESC, roznica_bramek DESC,  zdobyte_bramki DESC


ale tylko wtedy gdy pkt_meczy_bezposrednich nie są NULL gdy są NULL to ma pomijać je i sortować po

Kod
roznica_bramek DESC, zdobyte bramki DESC


Ten post edytował arzach 24.08.2010, 19:29:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Ramzaa
post 24.08.2010, 19:37:05
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 17
Dołączył: 4.08.2009

Ostrzeżenie: (0%)
-----


ORDER BY `pole` AND `pole` AND `pole3?` ?
Go to the top of the page
+Quote Post
arzach
post 24.08.2010, 19:53:44
Post #3





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

Ostrzeżenie: (0%)
-----


Chyba mnie nie zrozumiałeś po za tym AND nie da się użyć w ORDER BY
Go to the top of the page
+Quote Post
Kaarpiik
post 24.08.2010, 20:05:43
Post #4





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

Ostrzeżenie: (0%)
-----


ORDER BY 'pole1' DESC 'pole2' DESC 'pole3' DESC

nie działa?
Go to the top of the page
+Quote Post
arzach
post 24.08.2010, 20:09:37
Post #5





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

Ostrzeżenie: (0%)
-----


Wiem, że takie coś działa, ale nie o to mi chodzi. Chodzi mi mniej więcej o takie cos
Kod
ORDER BY pkt DESC, IF(pkt_meczy_bezposrednich==NULL,

(zdobyte_bramki DESC,roznica_bramek DESC, zdobyte bramki DESC),

(pkt_meczy_bezposrednich DESC, roznica_bezposrednich_bramek DESC, roznica_bramek DESC)



);


Ale to nie działa
Czyli tak sprawdzamy czy
Kod
pkt_meczy_bezposrednich==NULL
jak tak sortujemy tak
Kod
zdobyte_bramki DESC,roznica_bramek DESC, zdobyte bramki DESC

Jak nie sortujemy tak
Kod
pkt_meczy_bezposrednich DESC, roznica_bezposrednich_bramek DESC, roznica_bramek DESC



Ten post edytował arzach 24.08.2010, 20:12:10
Go to the top of the page
+Quote Post
Kaarpiik
post 24.08.2010, 20:13:39
Post #6





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

Ostrzeżenie: (0%)
-----


if(pkt_meczy_bezposrednich==NULL){
select * from tabela order by [i tutaj jak chcesz]
}
else {
i tutaj też jak checsz
}

edit:

if(pkt_meczy_bezposrednich==NULL){
select * from tabela order by 'zdobyte_bramki' DESC, 'roznica_bramek' DESC, 'zdobyte bramki' DESC;
}
else {
select * from tabela order by 'pkt_meczy_bezposrednich' DESC, 'roznica_bezposrednich_bramek' DESC, 'roznica_bramek' DESC;
}

Ten post edytował Kaarpiik 24.08.2010, 20:15:09
Go to the top of the page
+Quote Post
arzach
post 24.08.2010, 20:15:48
Post #7





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

Ostrzeżenie: (0%)
-----


Nie mogę tego w php muszę w zapytaniu zrobić ale w zapytaniu pkt_meczy_bezposrednich==NULL nie działa jest funkcja mysql IS NULL i IS NOT NULL ale jej się chyba nie da wykorzystać w IF albo nie umiem.

To co chce zrobić ma wygenerować tabele piłkarską gdzie najpierw sortuje się po pkt potem sprwadza się czy były mecze bezpośrednie jak tak to po nich się sortuje jak nie to po różnicy bramek z całego sezonu, i goli zdobytych

W moim przypadku NULL w kolumnie oznacza, że meczu bezpośredniego nie było

Ten post edytował arzach 24.08.2010, 20:18:26
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:12