logo

ORDINAREA SQL ALE ALEATORII

Dacă doriți ca înregistrarea rezultată să fie comandat la întâmplare , ar trebui să utilizați următoarele coduri conform mai multor baze de date.

Iată o întrebare: de ce trebuie să obțineți o înregistrare aleatorie sau un rând dintr-o bază de date?

Uneori poate doriți să afișați informații aleatorii, cum ar fi articole, link-uri, pagini , etc., către utilizatorul dvs.

Dacă doriți să obțineți rânduri aleatorii din oricare dintre bazele de date, trebuie să utilizați unele interogări modificate în funcție de bazele de date.

    Selectați un rând aleatoriu cu MySQL:

Dacă doriți să returnați un rând aleatoriu cu MY SQL, utilizați următoarea sintaxă:

 SELECT column FROM table ORDER BY RAND () LIMIT 1; 
    Selectați un rând aleatoriu cu Postgre SQL:
 SELECT column FROM table ORDER BY RANDOM () LIMIT 1; 
    Selectați un rând aleatoriu cu SQL Server:
 SELECT TOP 1 column FROM table ORDER BY NEWID (); 
    Selectați un rând aleatoriu cu oracol:
 SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1; 
    Selectați un rând aleatoriu cu IBM DB2:
 SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY; 

Pentru a înțelege practic acest concept, să vedem câteva exemple folosind baza de date MySQL. Luați în considerare că avem elemente de tabel create în baza de date cu următoarele date:

Tabel: articole

android.process.acore continuă să se oprească
ID Item_Nume Item_Quantity Pretul articolului Data cumpărării
1 Săpun 5 200 2021-07-08
2 Pastă de dinţi 2 80 2021-07-10
3 Pix 10 cincizeci 2021-07-12
4 Sticla 1 250 2021-07-13
5 Perie 3 90 2021-07-15

Să presupunem că vrem să extragem orice înregistrare aleatorie din tabelul cu articole.

Vom scrie interogarea după cum urmează:

numere romane de la 1 la 100
 mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1; 

Este posibil să obținem următoarele rezultate:

ID Item_Nume Item_Quantity Pretul articolului Data cumpărării
3 Pix 10 douăzeci 2021-07-12

Acum haideți să încercăm să executăm aceeași interogare încă o dată.

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

Este posibil să obținem următoarele rezultate:

ID Item_Nume Item_Quantity Pretul articolului Data cumpărării
5 Perie 3 90 2021-07-15

Din rezultatele de mai sus, putem concluziona că obținem înregistrări diferite ca ieșire de ambele ori, chiar dacă am executat aceeași interogare de două ori. Funcția RAND () a selectat înregistrări aleatorii de ambele ori pentru aceeași interogare dintr-un singur tabel. Prin urmare, chiar dacă executăm din nou aceeași interogare, vom obține rezultate diferite de fiecare dată. Există o posibilitate rară de a obține aceeași înregistrare consecutiv folosind funcția RAND ().

Acum, să presupunem că doriți ca toate înregistrările tabelului să fie preluate aleatoriu.

Pentru a face acest lucru, trebuie să executăm următoarea interogare:

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

Este posibil să obținem următoarele rezultate:

ID Item_Nume Item_Quantity Pretul articolului Data cumpărării
4 Sticla 1 250 2021-07-13
5 Perie 3 90 2021-07-15
1 Săpun 5 200 2021-07-08
2 Pastă de dinţi 2 80 2021-07-10
3 Pix 10 cincizeci 2021-07-12

Există, de asemenea, posibilitatea de a obține unele aranjamente diferite de înregistrări dacă executăm din nou funcția RAND () pe tabelul angajaților.