Ja vēlaties, lai iegūtais ieraksts būtu pasūtīts nejauši , jums vajadzētu izmantot šādus kodus saskaņā ar vairākām datu bāzēm.
Šeit ir jautājums: kāda ir nepieciešamība iegūt nejaušu ierakstu vai rindu no datu bāzes?
10 no 50.00
Dažreiz jūs varētu vēlēties parādīt nejaušu informāciju, piemēram, raksti, saites, lapas u.c. savam lietotājam.
Ja vēlaties iegūt nejaušas rindas no jebkuras datu bāzes, jums ir jāizmanto daži mainīti vaicājumi atbilstoši datu bāzēm.
Ja vēlaties atgriezt nejaušu rindu ar MANU SQL, izmantojiet šādu sintaksi:
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;
Lai praktiski izprastu šo jēdzienu, apskatīsim dažus piemērus, izmantojot MySQL datubāzi. Apsveriet, ka datu bāzē ir izveidoti tabulas vienumi ar šādiem datiem:
Tabula: preces
ID | Priekšmeta nosaukums | Vienums_Daudzums | Vienuma_cena | Pirkuma datums |
---|---|---|---|---|
1 | Ziepes | 5 | 200 2021-07-08 | |
2 | Zobu pasta | 2 | 80 | 2021-07-10 |
3 | Pildspalva | 10 | piecdesmit | 2021-07-12 |
4 | Pudele | 1 | 250 | 2021-07-13 |
5 | Ota | 3 | 90 | 2021-07-15 |
Pieņemsim, ka mēs vēlamies izgūt jebkuru nejaušu ierakstu no vienumu tabulas.
Mēs uzrakstīsim vaicājumu šādi:
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Mēs varam iegūt šādus rezultātus:
ID | Priekšmeta nosaukums | Vienums_Daudzums | Vienuma_cena | Pirkuma datums |
---|---|---|---|---|
3 | Pildspalva | 10 | divdesmit | 2021-07-12 |
Tagad mēģināsim izpildīt to pašu vaicājumu vēlreiz.
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Mēs varam iegūt šādus rezultātus:
ID | Priekšmeta nosaukums | Vienums_Daudzums | Vienuma_cena | Pirkuma datums |
---|---|---|---|---|
5 | Ota | 3 | 90 | 2021-07-15 |
No iepriekšminētajiem rezultātiem mēs varam secināt, ka abas reizes mēs iegūstam dažādus ierakstus kā izvadi, lai gan mēs divreiz izpildījām vienu un to pašu vaicājumu. Funkcija RAND () ir atlasījusi nejaušus ierakstus abas reizes vienam vaicājumam no vienas tabulas. Tāpēc, pat ja mēs vēlreiz izpildām vienu un to pašu vaicājumu, mēs katru reizi iegūsim citu izvadi. Pastāv reta iespēja iegūt vienu un to pašu ierakstu pēc kārtas, izmantojot RAND () funkciju.
Tagad pieņemsim, ka vēlaties, lai visi tabulas ieraksti tiktu ielādēti nejauši.
Lai to izdarītu, mums ir jāizpilda šāds vaicājums:
mysql> SELECT * FROM items ORDER BY RAND ();
Mēs varam iegūt šādus rezultātus:
ID | Priekšmeta nosaukums | Vienums_Daudzums | Vienuma_cena | Pirkuma datums |
---|---|---|---|---|
4 | Pudele | 1 | 250 | 2021-07-13 |
5 | Ota | 3 | 90 | 2021-07-15 |
1 | Ziepes | 5 | 200 | 2021-07-08 |
2 | Zobu pasta | 2 | 80 | 2021-07-10 |
3 | Pildspalva | 10 | piecdesmit | 2021-07-12 |
Pastāv arī iespēja iegūt dažus atšķirīgus ierakstu izkārtojumus, ja darbinieku tabulā atkal izpildām RAND () funkciju.