Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sortowanie losowych rekordów
Michu
post
Post #1





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 15.10.2006
Skąd: zewsząd :P

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


Witam. Mam tabelkę o kolumnach id, rank. Chcę wybrać z niej losowe dziesięć rekordów, przy czym wynik ma być posortowany według rank. Próbowałem zapytania:

  1. SELECT id, rank FROM tabelka ORDER BY RAND(), rank LIMIT 0, 10


Lecz rekordy nie są uporządkowane. Jak rozwiązać problem?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Wydaje mi się, że jedynym wyjściem w tej sytuacji będzie zapis wybranych losowo (ORDER BY RAND()) rekordów oraz późniejsze posortowanie ich pod względem `rank` już po stronie PHP.
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #3





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


  1. SELECT * FROM ( SELECT id, rank FROM tabelka ORDER BY RAND() LIMIT 0, 10 ) AS tabtmp ORDER BY rank;

Choć nie polecam takiego stosowania rand(), przeszukaj forum pod tym względem, to się dowiesz dlaczego.

P.S. nie napisałeś w jakiej bazie pracujesz, a nie we wszystkich musi działać to, choć powinno
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.12.2025 - 23:30