Hvis du vil at den resulterende posten skal være tilfeldig bestilt , bør du bruke følgende koder i henhold til flere databaser.
Her er et spørsmål: hva er behovet for å hente en tilfeldig post eller en rad fra en database?
Noen ganger vil du kanskje vise tilfeldig informasjon som artikler, lenker, sider osv. til brukeren din.
understreking
Hvis du vil hente tilfeldige rader fra noen av databasene, må du bruke noen endrede spørringer i henhold til databasene.
Hvis du vil returnere en tilfeldig rad med MY SQL, bruk følgende syntaks:
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;
For å forstå dette konseptet praktisk, la oss se noen eksempler på bruk av MySQL-databasen. Tenk på at vi har et tabellelement opprettet i databasen med følgende data:
Tabell: varer
ID | Gjenstandsnavn | Item_Quantity | Vare_pris | Kjøpsdato |
---|---|---|---|---|
1 | Såpe | 5 | 200 2021-07-08 | |
2 | Tannkrem | 2 | 80 | 2021-07-10 |
3 | Penn | 10 | femti | 2021-07-12 |
4 | Flaske | 1 | 250 | 2021-07-13 |
5 | Børste | 3 | 90 | 2021-07-15 |
Anta at vi ønsker å hente en tilfeldig post fra elementtabellen.
udp protokoll
Vi vil skrive spørringen som følger:
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Vi kan få følgende resultater:
ID | Gjenstandsnavn | Item_Quantity | Vare_pris | Kjøpsdato |
---|---|---|---|---|
3 | Penn | 10 | tjue | 2021-07-12 |
La oss nå prøve å utføre den samme spørringen en gang til.
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Vi kan få følgende resultater:
ID | Gjenstandsnavn | Item_Quantity | Vare_pris | Kjøpsdato |
---|---|---|---|---|
5 | Børste | 3 | 90 | 2021-07-15 |
Fra resultatene ovenfor kan vi konkludere med at vi får forskjellige poster som utdata begge ganger, selv om vi utførte den samme spørringen to ganger. RAND ()-funksjonen har valgt tilfeldige poster begge ganger for samme spørring fra en enkelt tabell. Derfor, selv om vi utfører den samme spørringen igjen, vil vi få forskjellig utgang hver gang. Det er en sjelden mulighet for å få den samme posten fortløpende ved å bruke RAND ()-funksjonen.
Anta at du vil at alle postene i tabellen skal hentes tilfeldig.
For å gjøre det, må vi utføre følgende spørring:
linux kommandoer
mysql> SELECT * FROM items ORDER BY RAND ();
Vi kan få følgende resultater:
ID | Gjenstandsnavn | Item_Quantity | Vare_pris | Kjøpsdato |
---|---|---|---|---|
4 | Flaske | 1 | 250 | 2021-07-13 |
5 | Børste | 3 | 90 | 2021-07-15 |
1 | Såpe | 5 | 200 | 2021-07-08 |
2 | Tannkrem | 2 | 80 | 2021-07-10 |
3 | Penn | 10 | femti | 2021-07-12 |
Det er også en mulighet for å få noen forskjellige arrangementer av poster hvis vi kjører RAND ()-funksjonen på nytt på medarbeidertabellen.