![]() |
![]() |
![]()
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ę. |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 20:25 |