Record casuali con SQL Server, Access e MySQL

2 pagine in totale: <<Indietro 1 [2]

ACCESS

Purtroppo Access non fornisce la funzione Rand() per cui ci dovremmo arrangiare effettuando 2 SELECT distinte, una per recuperare l'ultimo id inserito e una per estrarre il record random.
Per prima cosa troviamo l'ultimo id inserito
<%
Set con = Server.CreateObject("ADODB.Connection")
con.Open strConn ' da valorizzare
SQL = "SELECT MAX(id) AS MaxId FROM tblProverbi"
set rs = con.Execute(SQL)
If Not rs.Eof Then
    MaxId = rs("MaxId ")
Else
    MaxId = 0
End If
Rs.Close : Set rs = Nothing
%>

Dopodiché calcoliamo un valore casuale compreso tra 0 e l'ultimo id inserito utilizzando la funzione Rnd()

<%
Randomize
RandomNumber = Rnd * MaxId
%>
Quindi andiamo ad estrarre un record utilizzando il numero appena calcolato:
<%
SQL = "SELECT TOP 1 * FROM tblProverbi WHERE id >= " & RandomNumber
set rs = con.Execute(SQL)
If Not rs.Eof Then
    Response.Write rs("id") & " - " & rs("proverbio")
Else
    Response.Write "Nessun proverbio da visualizzare"
End If
%>

Alla fine dobbiamo ricordarci di chiudere la connessione e di liberare memoria scaricando i riferimento al recordset ed alla connessione.

MySQL

Ancora una volta MySQL ci riserva una sorpresa; per selezionare un record a caso dalla tabella basta infatti utilizzare la clausola RAND() accoppiata con LIMIT 1 su ORDER BY ed il gioco è fatto.

<%
Set con = Server.CreateObject("ADODB.Connection")
con.Open strConn ' da valorizzare
SQL = "SELECT * FROM tblProverbi ORDER BY RAND() LIMIT 1"
set rs = con.Execute(SQL)
If Not rs.Eof Then
    Response.Write rs("id") & " - " & rs("proverbio")
Else
    Response.Write "Nessun proverbio da visualizzare"
End If
rs.Close : Set rs = Nothing
con.Close : Set con = Nothing
%>

Conclusioni

Con questo articolo abbiamo visto come, utilizzando tre dei database più comunemente utilizzati, sia possibile estrarre un record casuale da una tabella.

Naturalmente qui ci siamo limitati ad estrarre il record relativamente al campo id, ma nulla vieta di adattare tali script a vostro piacimento.

2 pagine in totale: <<Indietro 1 [2]

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC