logo

SQL-ORDER DOOR WILLEKEURIG

Als u wilt dat de resulterende record willekeurig besteld , moet u de volgende codes gebruiken volgens verschillende databases.

Hier is een vraag: wat is de noodzaak om een ​​willekeurig record of een rij uit een database op te halen?

Soms wilt u misschien willekeurige informatie weergeven, zoals artikelen, links, pagina's , enz., naar uw gebruiker.

Als u willekeurige rijen uit een van de databases wilt ophalen, moet u enkele gewijzigde query's gebruiken, afhankelijk van de databases.

    Selecteer een willekeurige rij met MySQL:

Als u een willekeurige rij wilt retourneren met MIJN SQL, gebruikt u de volgende syntaxis:

 SELECT column FROM table ORDER BY RAND () LIMIT 1; 
    Selecteer een willekeurige rij met Postgre SQL:
 SELECT column FROM table ORDER BY RANDOM () LIMIT 1; 
    Selecteer een willekeurige rij met SQL Server:
 SELECT TOP 1 column FROM table ORDER BY NEWID (); 
    Selecteer een willekeurige rij met orakel:
 SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1; 
    Selecteer een willekeurige rij met IBM DB2:
 SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY; 

Laten we, om dit concept praktisch te begrijpen, enkele voorbeelden bekijken waarbij gebruik wordt gemaakt van de MySQL-database. Stel dat we tabelitems in de database hebben aangemaakt met de volgende gegevens:

Tabel: artikelen

ID kaart Itemnaam Artikel_hoeveelheid Stuksprijs Aankoopdatum
1 Zeep 5 200 08-07-2021
2 Tandpasta 2 80 10-07-2021
3 Pen 10 vijftig 12-07-2021
4 Fles 1 250 13-07-2021
5 Borstel 3 90 15-07-2021

Stel dat we een willekeurig record uit de itemstabel willen ophalen.

We schrijven de query als volgt:

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

Mogelijk krijgen we de volgende resultaten:

ID kaart Itemnaam Artikel_hoeveelheid Stuksprijs Aankoopdatum
3 Pen 10 twintig 12-07-2021

Laten we nu proberen dezelfde query nog een keer uit te voeren.

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

Mogelijk krijgen we de volgende resultaten:

ID kaart Itemnaam Artikel_hoeveelheid Stuksprijs Aankoopdatum
5 Borstel 3 90 15-07-2021

Uit de bovenstaande resultaten kunnen we concluderen dat we beide keren verschillende records als uitvoer krijgen, ook al hebben we dezelfde query twee keer uitgevoerd. De functie RAND () heeft beide keren willekeurige records geselecteerd voor dezelfde query uit één tabel. Zelfs als we dezelfde query opnieuw uitvoeren, krijgen we elke keer een andere uitvoer. Er is een zeldzame mogelijkheid om dezelfde record opeenvolgend te verkrijgen met behulp van de functie RAND ().

Stel nu dat u wilt dat alle records van de tabel willekeurig worden opgehaald.

Om dit te doen, moeten we de volgende query uitvoeren:

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

Mogelijk krijgen we de volgende resultaten:

ID kaart Itemnaam Artikel_hoeveelheid Stuksprijs Aankoopdatum
4 Fles 1 250 13-07-2021
5 Borstel 3 90 15-07-2021
1 Zeep 5 200 08-07-2021
2 Tandpasta 2 80 10-07-2021
3 Pen 10 vijftig 12-07-2021

Er is ook een mogelijkheid om een ​​aantal andere rangschikkingen van records te krijgen als we de functie RAND () opnieuw uitvoeren op de werknemerstabel.