Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie losowo unikatowych rekordów
Mooseman
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 9.05.2009

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


Mam następującą tabele i oraz przykładową zawartość:

|id |name |category |
--------------------------
|1 |Jabłko |1 |
|2 |Banan |1 |
|3 |Cytryna |2 |
|4 |Pomidor |3 |
|5 |Anans |3 |
--------------------------

W jaki sposób mogę pobrać losowo po jednym produkcie z każdej kategorii? Wynikiem zapytania kótre mnie interesuje winny byc w tym przypadku trzy rekordy, z czego pierwszy to Jabłko lub Banan + Cytryna + Pomidor lub Ananas. Mayśle, że rozumiecie co chcę uzyskać.

Próbowałem zapytania z użyciem ...GROUP BY `category` ORDER BY RAND()... ale daje to efekt w postaci pobierania zawsze tego samego rekordu z danej kategori i całość w losowej kolejności. Nie jest to jednak to czego oczekuję. Próbowałem także ...SELECT DISTINCT `category`... ale tutaj wynikiem są same wartości z kolumny `category`, a ja nie potrafię pobrać do tego jeszcze to co najważniejsze czyli ich `id` oraz `name`
.

Będę niezmiernie wdzieczny za każdą sugestię.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


jeżeli chodzi o DISTINCT to wystarczy że po przecinku dodasz pola które chcesz pobrać czyli coś w stylu:

  1. SELECT DISTINCT(pole) , id FROM ....


ale distinct działa na cały wynik, a nie na poszczególne pola, więc i tak nie zadziała do przykładu który chcesz, group by zawsze bierze pierwszy lub ostatni, ale zawsze ten sam, a RAND działa na wynikach zapytania (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował melkorm 9.05.2009, 18:56:16
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 11:37