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
kimj9174
post
Post #2





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 29.04.2009

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


A utworz 2 tablice.
Jedna z produktami z kategorii 1, druga z kategorii 2

pozniej przetasuj jedna i druga, pobierz po pierwszym elemencie z tablicy i polacz je array_merge.

2.gi sposob
1 zapytanie select costam form gdziestam where costam=costam
- masz rekord
2 drugie zaytanie select * from costam where costam rozne od 'masz rekord' ORDER BY RAND() LIMIT 1

i po zawodach


edit nie spojrzalem. musisz zrobic tyle zapytan ile masz kategorii (chyba)
mousisz powtorzyc tyle razy ile masz kategorii

Ten post edytował kimj9174 10.05.2009, 22:03:26
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 20:25