Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Problem z RAND() i GROUP BY
parzol
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 1
Dołączył: 7.05.2005

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


Witam

Mam tabele:
id | position
=========
1 | 2
2 | 3
3 | 2
4 | 3

Wykonuje polecenie:
  1. SELECT id, position FROM tabela WHERE position ORDER BY RAND() LIMIT 2 ;


I wszystko OK tylko że w wyniku nie chce otrzymywać pary liczb z position (muszę to być dwie różne wartości). Rozwiązaniem myślałem że będzie GROUP BY ale kiedy go zastosuje to zawsze wybierane są tylko dwie pierwsze pozycje i losowane tylko z nich.

Żeby otrzymać to co chce potrzebne by było ORDER BY ... GROUP BY... ale to nie jest dozwolone smile.gif

Napewno jest to rozwiązywalne, może prościej jakoś niż ja sądze. Prosze o pomoc i z góry dziękuję.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


możesz użyć podzapytania:
  1. SELECT * FROM (SELECT id, position FROM tabela ORDER BY RAND() LIMIT 2 ) AS tmp GROUP BY position;


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
parzol
post
Post #3





Grupa: Zarejestrowani
Postów: 135
Pomógł: 1
Dołączył: 7.05.2005

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


Bez LIMIT 2 mam to co chciałem smile.gif Dzięki.
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: 20.08.2025 - 10:08