Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie losowych rekordów
Forum PHP.pl > Forum > Bazy danych
Michu
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?
phpion
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.
Sedziwoj
  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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.