Mam w bazie danych tabelę, a w niej załóżmy pola: nazwa i ilość.
W tabeli jest pewna ilość rekordów, wartości w kolumnie ilość są od siebie różne.
Chciałbym teraz za pomocą jednego zapytania otrzymać np.: 10 rekordów z największą wartością w kolumnie ilość, ale w losowej kolejności.
znalazłem takie rozwiązanie, ale jakoś nie mogę sobie z nim poradzić:
SELECT * FROM (SELECT * FROM my_table ORDER BY ilosc DESC LIMIT 10 ) ORDER BY RAND();
Aha... i ja wiem, że można oczywiście pobrać te 10 rekordów do tablicy posortowane po kolei według kolumny ilość, a następnie "porozrzucać" elementy tablicy (shuffle" title="Zobacz w manualu PHP" target="_manual), ale chciałbym też poznać alternatywę i zrobić to za pomocą samego MySQL.
I chciałbym też poznać waszą opinię, co do tego, które rozwiązanie byłoby bardziej optymalne przy gigantycznych rozmiarach bazy danych.