Come selezionare un record casuale in SQL

Per selezionare un record casuale in un database SQL è possibile utilizzare la funzione RAND() su MySQL, Random() su PostgreSQL o Newid() su SQL Server di Microsoft.

Il procedimento è molto semplice. Scriviamo una SELECT qualsiasi, ad esempio quella per estrapolare i nomi degli alunni di una classe e ordiniamo la selezione per la funzione di ordinamento casuale dei risultati.

In MySql la funzione è scritta nel seguente modo:

SELECT nome FROM alunni ORDER BY RAND()

In MySql la funzione RAND() indica al server SQL di ordinare i dati sulla base di un indice generato da numeri casuali.

La query estrapola i dati seguendo l'ordine dettato dai numeri casuali e, quindi, fornisce all'utente un record preso a caso.

Se il database è molto grande è consigliabile limitare la SELECT a pochi record, aggiungendo la clausola LIMIT.

SELECT nome FROM alunni ORDER BY RAND() LIMIT 1

In quest'ultimo caso, la SELECT ordina i dati sulla base di un vettore di numeri casuali ed estrapola il primo record della lista. È un accorgimento particolarmente utile quando si vuole prelevare un record a caso da una tabella, ad esempio per svolgere un controllo a campione o per elaborare l'informazione.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

SQL