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.
Als u een willekeurige rij wilt retourneren met MIJN SQL, gebruikt u de volgende syntaxis:
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;
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.