sql >> Database teknologi >  >> RDS >> MariaDB

Returner tilfældige rækker fra en tabel i MariaDB

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.


  1. Ti måder dit dataprojekt kommer til at mislykkes på

  2. Sådan tilføjer du bare de forskellige værdier med SQLite Sum()

  3. Hvordan indsætter man værdier i tabel med fremmednøgle ved hjælp af MySQL?

  4. PDO-bindingsværdier for MySQL IN-sætning