Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Rand z pobieraniem po jednym rekordzie z innej kategorii
Forum PHP.pl > Forum > Przedszkole
tomekpl
Witam, właśnie mam taki mały problem, kiedyś coś podobnego robiłem, ale wypadło mi z głowy.

Jak zrobić, żeby pobierać losowe wyniki z bazy, i w tym samym momencie, żeby kategoria produktu nie powtarzała się.
Czyli, żeby losowało np. 6 produktów, które maja inne kategorie.

id | produkt | kategoria |
cezarszl
Chyba tak:
  1.  
  2. SELECT DISTINCT id, produkt, kategoria FROM test GROUP BY kategoria ORDER BY RAND();
  3.  
mortus
@cezarszl Takie proste to to nie jest.

Jednym ze sposobów jest:
  1. SELECT * FROM (SELECT * FROM `produkty` ORDER BY RAND()) `posortowane_losowo` GROUP BY `kategoria`

Jednak wydajność takiego zapytania do największych nie należy. Niestety w tej chwili nic innego mi do głowy nie przychodzi.
cezarszl
@up

Faktycznie. Nie zwróciłem uwagi, że wyświetla w losowej kolejności, ale tylko pierwsze produkty z danej kategorii.
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.