Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php+mysql]Problem z sortowaniem
Leszczu2010
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 22.01.2004

Ostrzeżenie: (10%)
X----


Witam, mam taki oto problem:

Posiadam tabele w której są wpisy ilości głosów i średniej,
chciałbym napisać takie zapytanie do bazy danych aby zwrócił mi wynik posortowany wg. najwyższej średniej a następnie wg. ilości głosów.
Mój problem polega na tym że chce aby to sortowanie odbywało sie powiedzmy np. na 50 wierszach z największą ilością głosów.
Chciałem załatwić sprawe jednym zapytaniem mysql, ale powoli trace nadzieje na rozwiązanie...

Z góry dzięki za pomoc smile.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


  1. SELECT * FROM (SELECT * FROM tabela ORDER BY `ilosc_glosow` DESC LIMIT 50 ) AS tmp ORDER BY `srednia` DESC, `ilosc_glosow`;

powodzenia...


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
Leszczu2010
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 22.01.2004

Ostrzeżenie: (10%)
X----


hmmmm coś mi to nie chce działać, gdzie robie błąd?

  1. SELECT * FROM ( SELECT * FROM `users_average_day`ORDER BY 'count' DESC LIMIT 50 ) AS tmp ORDER BY 'average' DESC;


Edit:

W końcu doszedłem do tego w czym tkwił błąd, miałem server z mysql w versji poniżej 4.1 czyli podzapytania nie działały.
Ostatecznie poprawny kod to:


  1. SELECT *
  2. FROM ( SELECT *
  3. FROM users_average_day ORDER BY count DESC LIMIT 50
  4. ) AS t
  5. ORDER BY average DESC LIMIT 50



Witam ponownie. Niestety mój serwer ma mysql 4.0.26 i podzapytania nie działają. Czy jest możliwość innaczej napisać powyższe zapytanie aby to działało na starszych wersjach mysql'a?

Ten post edytował Leszczu2010 21.01.2008, 12:12:06
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 Aktualny czas: 21.08.2025 - 21:00