Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Problem z RAND() i GROUP BY
Forum PHP.pl > Forum > Bazy danych > MySQL
parzol
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ę.
nevt
możesz użyć podzapytania:
  1. SELECT * FROM (SELECT id, position FROM tabela ORDER BY RAND() LIMIT 2 ) AS tmp GROUP BY position;
parzol
Bez LIMIT 2 mam to co chciałem smile.gif Dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.