Om du vill att den resulterande posten ska vara beställs slumpmässigt , bör du använda följande koder enligt flera databaser.
Här är en fråga: vad är behovet av att hämta en slumpmässig post eller en rad från en databas?
Ibland kanske du vill visa slumpmässig information som artiklar, länkar, sidor , etc., till din användare.
Om du vill hämta slumpmässiga rader från någon av databaserna måste du använda några ändrade frågor enligt databaserna.
Om du vill returnera en slumpmässig rad med MY SQL, använd följande syntax:
SELECT column FROM table ORDER BY RAND () LIMIT 1;
SELECT column FROM table ORDER BY RANDOM () LIMIT 1;
SELECT TOP 1 column FROM table ORDER BY NEWID ();
SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1;
SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY;
För att förstå detta koncept praktiskt, låt oss se några exempel med hjälp av MySQL-databasen. Tänk att vi har skapat en tabell i databasen med följande data:
Tabell: föremål
ID | Föremålsnamn | Item_Quantity | Varupris | Inköpsdatum |
---|---|---|---|---|
1 | Tvål | 5 | 200 2021-07-08 | |
2 | Tandkräm | 2 | 80 | 2021-07-10 |
3 | Penna | 10 | femtio | 2021-07-12 |
4 | Flaska | 1 | 250 | 2021-07-13 |
5 | Borsta | 3 | 90 | 2021-07-15 |
Anta att vi vill hämta en slumpmässig post från objekttabellen.
Vi kommer att skriva frågan så här:
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Vi kan få följande resultat:
ID | Föremålsnamn | Item_Quantity | Varupris | Inköpsdatum |
---|---|---|---|---|
3 | Penna | 10 | tjugo | 2021-07-12 |
Låt oss nu försöka köra samma fråga en gång till.
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Vi kan få följande resultat:
ID | Föremålsnamn | Item_Quantity | Varupris | Inköpsdatum |
---|---|---|---|---|
5 | Borsta | 3 | 90 | 2021-07-15 |
Från ovanstående resultat kan vi dra slutsatsen att vi får olika poster som utdata båda gångerna trots att vi körde samma fråga två gånger. RAND ()-funktionen har valt slumpmässiga poster båda gångerna för samma fråga från en enda tabell. Därför, även om vi kör samma fråga igen, kommer vi att få olika utdata varje gång. Det finns en sällsynt möjlighet att få samma post i följd med RAND ()-funktionen.
Anta nu att du vill att alla poster i tabellen ska hämtas slumpmässigt.
För att göra det måste vi köra följande fråga:
mysql> SELECT * FROM items ORDER BY RAND ();
Vi kan få följande resultat:
ID | Föremålsnamn | Item_Quantity | Varupris | Inköpsdatum |
---|---|---|---|---|
4 | Flaska | 1 | 250 | 2021-07-13 |
5 | Borsta | 3 | 90 | 2021-07-15 |
1 | Tvål | 5 | 200 | 2021-07-08 |
2 | Tandkräm | 2 | 80 | 2021-07-10 |
3 | Penna | 10 | femtio | 2021-07-12 |
Det finns också en möjlighet att få några olika arrangemang av poster om vi kör RAND ()-funktionen igen på arbetstabellen.