Her er en hurtig måde at returnere tilfældige rækker fra en tabel i MariaDB.
Antag, at vi har en tabel kaldet Pets
med følgende data:
SELECT
PetId,
PetName
FROM Pets;
Resultat:
+-------+---------+ | PetId | PetName | +-------+---------+ | 1 | Fluffy | | 2 | Fetch | | 3 | Scratch | | 4 | Wag | | 5 | Tweet | | 6 | Fluffy | | 7 | Bark | | 8 | Meow | +-------+---------+
Vi kan bruge RAND()
funktion sammen med en ORDER BY
klausulen og LIMIT
nøgleord for at returnere tilfældige rækker fra den tabel.
Eksempel:
SELECT
PetId,
PetName
FROM Pets
ORDER BY RAND()
LIMIT 5;
Eksempelresultat:
+-------+---------+ | PetId | PetName | +-------+---------+ | 5 | Tweet | | 7 | Bark | | 1 | Fluffy | | 8 | Meow | | 3 | Scratch | +-------+---------+
Og hvis jeg kører det igen, får jeg dette:
+-------+---------+ | PetId | PetName | +-------+---------+ | 3 | Scratch | | 8 | Meow | | 4 | Wag | | 7 | Bark | | 6 | Fluffy | +-------+---------+
Og så videre...
Husk, at dette er ret intensivt og ikke bør bruges på større borde.
Når du bruger denne teknik, læser MariaDB alle rækker i tabellen, genererer en tilfældig værdi for hver af dem, bestiller dem og til sidst anvender LIMIT
klausul. Dette vil resultere i en meget langsom forespørgsel på store tabeller.
Se Datasampling:Teknikker til effektivt at finde en tilfældig række på MariaDB-webstedet for teknikker, der er mere egnede til større tabeller.