Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak to zrobić w jednym zapytaniu?
kitol
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 26
Dołączył: 19.01.2007

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


Mamy tabelę (id, grupa)

0 , 0
1 , 0
2 , 0
3 , 1
4 , 2
5 , 3
6 , 3

Jak wylosować w jednym zapytaniu po jednym id z każdej grupy? Tzn. chcę mieć jedno zapytanie które zwróci w przypadku tej tabeli 4 liczby: pierwsza z przedziału (0-2), druga =3, trzecia=4, czwarta (5 lub 6).
Zrobiłem to w pętli, ale w takim przypadku mam aż 5 zapytań.
Go to the top of the page
+Quote Post
ferr
post
Post #2





Grupa: Zarejestrowani
Postów: 122
Pomógł: 3
Dołączył: 18.12.2004

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


  1. "SELECT id, id_grupa FROM tabela GROUP BY id_grupa"


?


--------------------
Go to the top of the page
+Quote Post
kitol
post
Post #3





Grupa: Zarejestrowani
Postów: 162
Pomógł: 26
Dołączył: 19.01.2007

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


Tak to działa snitch.gif, ale nie oto mi chodziło. Nie sprecyzowałem, że pojedyńcza wartość ma być losowana z grupy kilku elementowej. To zapytanie zwraca zawsze taki sam zestaw. sad.gif
Go to the top of the page
+Quote Post
ferr
post
Post #4





Grupa: Zarejestrowani
Postów: 122
Pomógł: 3
Dołączył: 18.12.2004

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


  1. SELECT id, id_grupa FROM tabela GROUP BY id_grupa ORDER BY RAND()


--------------------
Go to the top of the page
+Quote Post
kitol
post
Post #5





Grupa: Zarejestrowani
Postów: 162
Pomógł: 26
Dołączył: 19.01.2007

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


też nie do końca dobrze bo jak zechcę posortować po grupa to mi nie działa.

Wykombinowałem coś takiego:

  1. SELECT * FROM ( SELECT id,id_grupa
  2. FROM tabela ORDER BY RAND()
  3. ) AS a GROUP BY id_grupa ORDER BY id_grupa DESC;
Go to the top of the page
+Quote Post
ferr
post
Post #6





Grupa: Zarejestrowani
Postów: 122
Pomógł: 3
Dołączył: 18.12.2004

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


Wydaje mi sie, ze cos takiego pozwoli posortowac po grupie:

  1. SELECT id, id_grupa FROM tabela GROUP BY id_grupa ORDER BY RAND(), id_grupa


--------------------
Go to the top of the page
+Quote Post
kitol
post
Post #7





Grupa: Zarejestrowani
Postów: 162
Pomógł: 26
Dołączył: 19.01.2007

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


niestety nie działa: zwraca zawsze ten sam zestaw id, grupa w losowej kolejności.
Go to the top of the page
+Quote Post

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: 19.08.2025 - 10:52