Mam tabelę w MySQL, która zawiera nazwę kolumny category
. Próbuję napisać zapytanie, które zwróci 2 losowe rekordy z każdego category
.Pobierz dowolną liczbę losowych wierszy z każdej kategorii "według kategorii" w MySQL
Oto kod, który używam do dostać 2 rekordy z każdej category
z najwyższych wartości w moim rating
kolumny:
SELECT e1.*
FROM entries AS e1
WHERE (SELECT Count(*)
FROM entries AS e2
WHERE e2.category = e1.category
AND e1.rating <= e2.rating) <= 2
ORDER BY category,
rating DESC
Sprawdź ten link, aby zobaczyć tabelę z niektórych przykładowych danych i wyżej zapytania: http://sqlfiddle.com/#!9/bab8e/1
czego dokładnie potrzebujesz. 2 losowe rekordy z każdej kategorii? czy coś, czy to dotyczy kwerendy, które zawarłeś ..!? – Chella
Zapytanie jest właśnie po to, aby pokazać, z czym pracuję, że mam 30 wpisów w tabeli 10 każdej kategorii, chciałbym pobrać 2 losowe wpisy każdej z tych kategorii. To by zwróciło 6 wyników. – Ivar
Zobacz ten wpis: http://stackoverflow.com/questions/984396/how-to-get-mysql-random-integer-range – ntgCleaner