Come selezionare righe casuali in SQL: se ti stessi chiedendo la strada giusta per prendere delle righe a caso da un DB sei nel posto giusto! In questo articolo vedremo assieme come sia possibile eseguire una SELECT randomica e quindi estrarre casualmente delle righe da una tabella tramite linguaggio SQL.
C’è da dire che questa non è una delle operazioni più “ordinarie” a cui si potrebbe pensare di fare in un database, eppure c’è da dire che a differenza di tanti altri articoli che ci sono sul mio blog, questo nasce da una sola motivazione: la stessa per cui tu mi stai leggendo.
Cerco di spiegarmi meglio attraverso la mia presentazione. Mi chiamo Lorenzo neri e sono un informatico: questo blog è nato per aiutare persone come te a padroneggiare l’arte del nuovo millennio, l’informatica.
E di fatto, articolo dopo articolo, il mio blog ha preso forma dai miei stessi errori a cui ho trovato una soluzione che ho scritto. Esatto: gli articoli di questo blog sono soluzioni a problemi che ho trovato lungo la mia strada nel mondo della programmazione.
Eppure questo non nasce da un problema, ma appunto dallo stesso (probabilmente) motivo per cui sei qui: la curiosità.
Esatto, del resto, a meno che tu abbia qualche idea diversa dalla mia, non trovo troppe applicazioni dove fare uso di una selezione di righe casuali in SQL: ma veniamo a noi e cerchiamo di capire come si possa fare tutto questo.
Selezionare righe casuali in SQL: la RANDOM SELECT come si può fare?
In sintesi, per attuare una “SELECT RANDOM” per dirla così brutalmente, dipende dal linguaggio di programmazione ma anche del database perché certamente, nonostante si usi SQL di default ogni tipologia database ha il suo dialetto.
Non per nulla a SQL ho dedicato un’intera categoria sul blog, ma devo anche essere sincero con te: questa serie di soluzioni non viene da me.
Eh no, viene da Pete Freitag, dal cui blog di cui ti lascio le referenze ho trovato una risposta valida.
Per intenderci, se volessi selezionare righe casuali da una tabella in MySQL dovresti fare così:
SELECT column FROM table
ORDER BY RAND()
LIMIT 1
Se invece volessi eseguire appunto una “SELECT RANDOM FROM TABLE” con un database Oracle, dovresti fare come segue:
SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1
E per ciò che concerne gli altri database, ti invito a consultare il blog di Pete Freitag che dobbiamo ringraziare ancora una volta.