Oto szybki sposób na zwrócenie losowych wierszy z tabeli w MariaDB.
Załóżmy, że mamy tabelę o nazwie Pets
z następującymi danymi:
SELECT
PetId,
PetName
FROM Pets;
Wynik:
+-------+---------+ | PetId | PetName | +-------+---------+ | 1 | Fluffy | | 2 | Fetch | | 3 | Scratch | | 4 | Wag | | 5 | Tweet | | 6 | Fluffy | | 7 | Bark | | 8 | Meow | +-------+---------+
Możemy użyć RAND()
funkcja w połączeniu z ORDER BY
klauzula i LIMIT
słowo kluczowe, aby zwrócić losowe wiersze z tej tabeli.
Przykład:
SELECT
PetId,
PetName
FROM Pets
ORDER BY RAND()
LIMIT 5;
Przykładowy wynik:
+-------+---------+ | PetId | PetName | +-------+---------+ | 5 | Tweet | | 7 | Bark | | 1 | Fluffy | | 8 | Meow | | 3 | Scratch | +-------+---------+
A jeśli uruchomię go ponownie, otrzymam to:
+-------+---------+ | PetId | PetName | +-------+---------+ | 3 | Scratch | | 8 | Meow | | 4 | Wag | | 7 | Bark | | 6 | Fluffy | +-------+---------+
I tak dalej…
Pamiętaj, że jest to dość intensywne i nie powinno być stosowane na większych stołach.
Korzystając z tej techniki, MariaDB odczytuje wszystkie wiersze w tabeli, generuje losową wartość dla każdego z nich, porządkuje je i na koniec stosuje LIMIT
klauzula. Spowoduje to bardzo powolne zapytanie w dużych tabelach.
Zobacz Próbkowanie danych:Techniki efektywnego znajdowania losowego wiersza w witrynie MariaDB, aby zapoznać się z technikami bardziej dopasowanymi do większych tabel.