logo

SQL ORDEN TILFÆLDIGT

Hvis du ønsker, at den resulterende post skal være bestilles tilfældigt , bør du bruge følgende koder i henhold til flere databaser.

Her er et spørgsmål: hvad er behovet for at hente en tilfældig post eller en række fra en database?

Nogle gange vil du måske vise tilfældige oplysninger som f.eks artikler, links, sider osv. til din bruger.

understregning

Hvis du vil hente tilfældige rækker fra nogen af ​​databaserne, skal du bruge nogle ændrede forespørgsler i henhold til databaserne.

    Vælg en tilfældig række med MySQL:

Hvis du vil returnere en tilfældig række med MY SQL, skal du bruge følgende syntaks:

 SELECT column FROM table ORDER BY RAND () LIMIT 1; 
    Vælg en tilfældig række med Postgre SQL:
 SELECT column FROM table ORDER BY RANDOM () LIMIT 1; 
    Vælg en tilfældig række med SQL Server:
 SELECT TOP 1 column FROM table ORDER BY NEWID (); 
    Vælg en tilfældig række med orakel:
 SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1; 
    Vælg en tilfældig række med IBM DB2:
 SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY; 

For at forstå dette koncept praktisk, lad os se nogle eksempler ved hjælp af MySQL-databasen. Overvej, at vi har oprettet et tabelelement i databasen med følgende data:

Tabel: varer

ID Tingens navn Item_Quantity Vare_Pris Købsdato
1 Sæbe 5 200 2021-07-08
2 Tandpasta 2 80 2021-07-10
3 Pen 10 halvtreds 2021-07-12
4 Flaske 1 250 2021-07-13
5 Børste 3 90 2021-07-15

Antag, at vi ønsker at hente enhver tilfældig post fra genstandetabellen.

udp protokol

Vi skriver forespørgslen som følger:

 mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1; 

Vi kan få følgende resultater:

ID Tingens navn Item_Quantity Vare_Pris Købsdato
3 Pen 10 tyve 2021-07-12

Lad os nu prøve at udføre den samme forespørgsel en gang til.

 mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1; 

Vi kan få følgende resultater:

ID Tingens navn Item_Quantity Vare_Pris Købsdato
5 Børste 3 90 2021-07-15

Ud fra ovenstående resultater kan vi konkludere, at vi får forskellige poster som output begge gange, selvom vi udførte den samme forespørgsel to gange. RAND ()-funktionen har valgt tilfældige poster begge gange for den samme forespørgsel fra en enkelt tabel. Derfor, selv om vi udfører den samme forespørgsel igen, vil vi få forskelligt output hver gang. Der er en sjælden mulighed for at få den samme post fortløbende ved hjælp af RAND ()-funktionen.

Antag nu, at du ønsker, at alle poster i tabellen skal hentes tilfældigt.

For at gøre det skal vi udføre følgende forespørgsel:

scanner java
 mysql> SELECT * FROM items ORDER BY RAND (); 

Vi kan få følgende resultater:

ID Tingens navn Item_Quantity Vare_Pris Købsdato
4 Flaske 1 250 2021-07-13
5 Børste 3 90 2021-07-15
1 Sæbe 5 200 2021-07-08
2 Tandpasta 2 80 2021-07-10
3 Pen 10 halvtreds 2021-07-12

Der er også en mulighed for at få nogle forskellige arrangementer af poster, hvis vi udfører RAND()-funktionen igen på medarbejdertabellen.