Če želite, da je nastali zapis naključno naročeno , morate uporabiti naslednje kode glede na več baz podatkov.
Tukaj je vprašanje: kakšna je potreba po pridobivanju naključnega zapisa ali vrstice iz baze podatkov?
Včasih boste morda želeli prikazati naključne informacije, npr članki, povezave, strani , itd., vašemu uporabniku.
Če želite pridobiti naključne vrstice iz katere koli baze podatkov, morate uporabiti nekaj spremenjenih poizvedb glede na bazo podatkov.
Če želite vrniti naključno vrstico z MY SQL, uporabite naslednjo sintakso:
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;
Da bi razumeli ta koncept v praksi, si oglejmo nekaj primerov uporabe baze podatkov MySQL. Recimo, da imamo v bazi podatkov ustvarjeno tabelo z naslednjimi podatki:
Tabela: predmeti
ID | Ime izdelka | Artikel_Količina | Item_Price | Datum nakupa |
---|---|---|---|---|
1 | Milo | 5 | 200 2021-07-08 | |
2 | Zobna pasta | 2 | 80 | 2021-07-10 |
3 | Pero | 10 | petdeset | 2021-07-12 |
4 | Steklenička | 1 | 250 | 2021-07-13 |
5 | Čopič | 3 | 90 | 2021-07-15 |
Recimo, da želimo pridobiti kateri koli naključni zapis iz tabele elementov.
Poizvedbo bomo napisali na naslednji način:
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Lahko dobimo naslednje rezultate:
ID | Ime izdelka | Artikel_Količina | Item_Price | Datum nakupa |
---|---|---|---|---|
3 | Pero | 10 | dvajset | 2021-07-12 |
Zdaj pa poskusimo še enkrat izvesti isto poizvedbo.
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Lahko dobimo naslednje rezultate:
ID | Ime izdelka | Artikel_Količina | Item_Price | Datum nakupa |
---|---|---|---|---|
5 | Čopič | 3 | 90 | 2021-07-15 |
Iz zgornjih rezultatov lahko sklepamo, da obakrat dobimo različne zapise kot izhod, čeprav smo dvakrat izvedli isto poizvedbo. Funkcija RAND () je obakrat izbrala naključne zapise za isto poizvedbo iz ene tabele. Torej, tudi če znova izvedemo isto poizvedbo, bomo vsakič dobili drugačen rezultat. Obstaja redka možnost zaporednega pridobivanja istega zapisa s funkcijo RAND ().
Recimo, da želite, da se vsi zapisi tabele pridobijo naključno.
java znak v int
Za to moramo izvesti naslednjo poizvedbo:
mysql> SELECT * FROM items ORDER BY RAND ();
Lahko dobimo naslednje rezultate:
ID | Ime izdelka | Artikel_Količina | Item_Price | Datum nakupa |
---|---|---|---|---|
4 | Steklenička | 1 | 250 | 2021-07-13 |
5 | Čopič | 3 | 90 | 2021-07-15 |
1 | Milo | 5 | 200 | 2021-07-08 |
2 | Zobna pasta | 2 | 80 | 2021-07-10 |
3 | Pero | 10 | petdeset | 2021-07-12 |
Obstaja tudi možnost, da dobimo nekaj drugačnih ureditev zapisov, če znova izvedemo funkcijo RAND () na tabeli zaposlenih.