logo

ORDINE SQL PER CASUALE

Se vuoi che il record risultante sia ordinato in modo casuale , dovresti utilizzare i seguenti codici in base a diversi database.

Ecco una domanda: qual è la necessità di recuperare un record casuale o una riga da un database?

A volte potresti voler visualizzare informazioni casuali come articoli, link, pagine , ecc., al tuo utente.

elenca come array

Se desideri recuperare righe casuali da uno qualsiasi dei database, devi utilizzare alcune query modificate in base ai database.

    Seleziona una riga casuale con MySQL:

Se vuoi restituire una riga casuale con MY SQL, usa la seguente sintassi:

 SELECT column FROM table ORDER BY RAND () LIMIT 1; 
    Seleziona una riga casuale con Postgre SQL:
 SELECT column FROM table ORDER BY RANDOM () LIMIT 1; 
    Seleziona una riga casuale con SQL Server:
 SELECT TOP 1 column FROM table ORDER BY NEWID (); 
    Seleziona una riga casuale con Oracle:
 SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1; 
    Seleziona una riga casuale con IBM DB2:
 SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY; 

Per comprendere concretamente questo concetto vediamo alcuni esempi utilizzando il database MySQL. Consideriamo di avere una tabella creata nel database con i seguenti dati:

Tabella: articoli

ID Nome dell'elemento Articolo_Quantità Prezzo dell'articolo Data di acquisto
1 Sapone 5 200 2021-07-08
2 Dentifricio 2 80 2021-07-10
3 Penna 10 cinquanta 2021-07-12
4 Bottiglia 1 250 2021-07-13
5 Spazzola 3 90 2021-07-15

Supponiamo di voler recuperare qualsiasi record casuale dalla tabella degli articoli.

scrivi json nel file python

Scriveremo la query come segue:

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

Potremmo ottenere i seguenti risultati:

ID Nome dell'elemento Articolo_Quantità Prezzo dell'articolo Data di acquisto
3 Penna 10 venti 2021-07-12

Ora proviamo a eseguire la stessa query ancora una volta.

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

Potremmo ottenere i seguenti risultati:

ID Nome dell'elemento Articolo_Quantità Prezzo dell'articolo Data di acquisto
5 Spazzola 3 90 2021-07-15

Dai risultati di cui sopra, possiamo concludere che otteniamo record diversi come output entrambe le volte anche se abbiamo eseguito la stessa query due volte. La funzione RAND () ha selezionato record casuali entrambe le volte per la stessa query da una singola tabella. Pertanto, anche se eseguiamo nuovamente la stessa query, otterremo ogni volta un output diverso. Esiste una rara possibilità di ottenere lo stesso record consecutivamente utilizzando la funzione RAND ().

Supponiamo ora di voler recuperare tutti i record della tabella in modo casuale.

Per fare ciò, dobbiamo eseguire la seguente query:

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

Potremmo ottenere i seguenti risultati:

ID Nome dell'elemento Articolo_Quantità Prezzo dell'articolo Data di acquisto
4 Bottiglia 1 250 2021-07-13
5 Spazzola 3 90 2021-07-15
1 Sapone 5 200 2021-07-08
2 Dentifricio 2 80 2021-07-10
3 Penna 10 cinquanta 2021-07-12

Esiste anche la possibilità di ottenere una diversa disposizione dei record se eseguiamo nuovamente la funzione RAND() sulla tabella dei dipendenti.