logo

SQL-JÄRJESTYS SATUNNAISESTI

Jos haluat tuloksena olevan ennätyksen tilattu satunnaisesti , sinun tulee käyttää seuraavia koodeja useiden tietokantojen mukaan.

csv-tiedoston lukeminen javassa

Tässä on kysymys: mitä tarvitaan satunnaisen tietueen tai rivin hakemiseen tietokannasta?

Joskus saatat haluta näyttää satunnaisia ​​tietoja, kuten artikkeleita, linkkejä, sivuja jne. käyttäjällesi.

Jos haluat hakea satunnaisia ​​rivejä mistä tahansa tietokannasta, sinun on käytettävä joitain muutettuja kyselyitä tietokantojen mukaan.

    Valitse satunnainen rivi MySQL:llä:

Jos haluat palauttaa satunnaisen rivin OMA SQL:llä, käytä seuraavaa syntaksia:

 SELECT column FROM table ORDER BY RAND () LIMIT 1; 
    Valitse satunnainen rivi Postgre SQL:llä:
 SELECT column FROM table ORDER BY RANDOM () LIMIT 1; 
    Valitse satunnainen rivi SQL Serverillä:
 SELECT TOP 1 column FROM table ORDER BY NEWID (); 
    Valitse satunnainen rivi oraakkelilla:
 SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1; 
    Valitse satunnainen rivi IBM DB2:lla:
 SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY; 

Ymmärtääksemme tätä käsitettä käytännössä, katsokaamme joitain esimerkkejä MySQL-tietokannan avulla. Oletetaan, että meillä on tietokantaan luotu taulukkokohteet, joissa on seuraavat tiedot:

Taulukko: kohteita

ID Tuotteen nimi Tuote_määrä Tuote_hinta Ostopäivä
1 Saippua 5 200 2021-07-08
2 Hammastahna 2 80 10.7.2021
3 Kynä 10 viisikymmentä 12.7.2021
4 Pullo 1 250 13.7.2021
5 Harjata 3 90 15.7.2021

Oletetaan, että haluamme noutaa minkä tahansa satunnaisen tietueen kohdetaulukosta.

Kirjoitamme kyselyn seuraavasti:

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

Saatamme saada seuraavat tulokset:

ID Tuotteen nimi Tuote_määrä Tuote_hinta Ostopäivä
3 Kynä 10 kaksikymmentä 12.7.2021

Yritetään nyt suorittaa sama kysely vielä kerran.

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

Saatamme saada seuraavat tulokset:

ID Tuotteen nimi Tuote_määrä Tuote_hinta Ostopäivä
5 Harjata 3 90 15.7.2021

Yllä olevista tuloksista voimme päätellä, että saamme eri tietueita lähtönä molemmilla kerroilla, vaikka suoritimme saman kyselyn kahdesti. RAND () -funktio on valinnut satunnaiset tietueet molemmat kertaa samalle kyselylle yhdestä taulukosta. Siksi, vaikka suoritammekin saman kyselyn uudelleen, saamme joka kerta erilaisen tuloksen. On harvinainen mahdollisuus saada sama tietue peräkkäin käyttämällä RAND () -toimintoa.

Oletetaan nyt, että haluat, että kaikki taulukon tietueet haetaan satunnaisesti.

Tätä varten meidän on suoritettava seuraava kysely:

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

Saatamme saada seuraavat tulokset:

ID Tuotteen nimi Tuote_määrä Tuote_hinta Ostopäivä
4 Pullo 1 250 13.7.2021
5 Harjata 3 90 15.7.2021
1 Saippua 5 200 2021-07-08
2 Hammastahna 2 80 10.7.2021
3 Kynä 10 viisikymmentä 12.7.2021

On myös mahdollista saada erilaisia ​​tietueiden järjestelyjä, jos suoritamme RAND () -funktion uudelleen työntekijätaulukossa.