Zde je rychlý způsob, jak vrátit náhodné řádky z tabulky v MariaDB.
Předpokládejme, že máme tabulku s názvem Pets
s následujícími údaji:
SELECT
PetId,
PetName
FROM Pets;
Výsledek:
+-------+---------+ | PetId | PetName | +-------+---------+ | 1 | Fluffy | | 2 | Fetch | | 3 | Scratch | | 4 | Wag | | 5 | Tweet | | 6 | Fluffy | | 7 | Bark | | 8 | Meow | +-------+---------+
Můžeme použít RAND()
funkce ve spojení s ORDER BY
klauzule a LIMIT
klíčové slovo vrátit náhodné řádky z této tabulky.
Příklad:
SELECT
PetId,
PetName
FROM Pets
ORDER BY RAND()
LIMIT 5;
Příklad výsledku:
+-------+---------+ | PetId | PetName | +-------+---------+ | 5 | Tweet | | 7 | Bark | | 1 | Fluffy | | 8 | Meow | | 3 | Scratch | +-------+---------+
A když to spustím znovu, dostanu toto:
+-------+---------+ | PetId | PetName | +-------+---------+ | 3 | Scratch | | 8 | Meow | | 4 | Wag | | 7 | Bark | | 6 | Fluffy | +-------+---------+
A tak dále…
Mějte na paměti, že je to poměrně intenzivní a nemělo by se používat na větších stolech.
Při použití této techniky MariaDB načte všechny řádky v tabulce, vygeneruje pro každý z nich náhodnou hodnotu, seřadí je a nakonec použije LIMIT
doložka. Výsledkem bude velmi pomalý dotaz na velké tabulky.
Viz Vzorkování dat:Techniky pro efektivní hledání náhodného řádku na webu MariaDB, kde najdete techniky vhodnější pro větší tabulky.