Ecco un modo rapido per restituire righe casuali da una tabella in MariaDB.
Supponiamo di avere una tabella chiamata Pets
con i seguenti dati:
SELECT
PetId,
PetName
FROM Pets;
Risultato:
+-------+---------+ | PetId | PetName | +-------+---------+ | 1 | Fluffy | | 2 | Fetch | | 3 | Scratch | | 4 | Wag | | 5 | Tweet | | 6 | Fluffy | | 7 | Bark | | 8 | Meow | +-------+---------+
Possiamo usare il RAND()
funzione in combinazione con un ORDER BY
clausola e il LIMIT
parola chiave per restituire righe casuali da quella tabella.
Esempio:
SELECT
PetId,
PetName
FROM Pets
ORDER BY RAND()
LIMIT 5;
Esempio di risultato:
+-------+---------+ | PetId | PetName | +-------+---------+ | 5 | Tweet | | 7 | Bark | | 1 | Fluffy | | 8 | Meow | | 3 | Scratch | +-------+---------+
E se lo eseguo di nuovo, ottengo questo:
+-------+---------+ | PetId | PetName | +-------+---------+ | 3 | Scratch | | 8 | Meow | | 4 | Wag | | 7 | Bark | | 6 | Fluffy | +-------+---------+
E così via...
Tieni presente che questo è piuttosto intenso e non dovrebbe essere usato su tavoli più grandi.
Quando si utilizza questa tecnica, MariaDB legge tutte le righe della tabella, genera un valore casuale per ciascuna di esse, le ordina e infine applica il LIMIT
clausola. Ciò comporterà una query molto lenta su tabelle di grandi dimensioni.
Vedere Campionamento dei dati:tecniche per trovare in modo efficiente una riga casuale sul sito Web di MariaDB per le tecniche più adatte a tabelle più grandi.