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.