logo

SQL-ORDER ETTER TILFELDIG

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.

    Velg en tilfeldig rad med MySQL:

Hvis du vil returnere en tilfeldig rad med MY SQL, bruk følgende syntaks:

 SELECT column FROM table ORDER BY RAND () LIMIT 1; 
    Velg en tilfeldig rad med Postgre SQL:
 SELECT column FROM table ORDER BY RANDOM () LIMIT 1; 
    Velg en tilfeldig rad med SQL Server:
 SELECT TOP 1 column FROM table ORDER BY NEWID (); 
    Velg en tilfeldig rad med orakel:
 SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1; 
    Velg en tilfeldig rad med IBM DB2:
 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.