Buongiorno.
Innanzitutto grazie per l'aiuto.
Allora, il mio intento è il seguente: visualizzare, in un apposito box presente nella pagina html, un CD (record della tabella) selezionato casualmente tra quelli attivi esistenti.
Preciso che gli ID dei record sono tutti consecutivi.
Detto questo, porto come esempio la situazione che ho impostato per fare i test: nella tabella sono presenti 14 record e solamente uno è attivo.
Questa è una condizione inverosimile poichè è molto più probabile che si verifichi il contrario, ovvero 13 record attivo ed uno non attivo.
Tuttavia, per adesso ho impostato tutto così per verificare i risultati dei test.
Il valore che a me interessa per recuperare i dati del record selezionato è l'ID. Questo perchè esistono dei collegamenti con altre tabelle ed il riferimento rimane sempre l'ID del CD selezionato.
Se utilizzassi il codice indicato (SELECT * FROM compactdisc WHERE compactdisc.attivo=TRUE ORDER BY rand() LIMIT 1) otterrei un risultato non attendibile, e spiego subito il perchè:
per come sono impostati adesso i record (13 non attivi, 1 attivo) otterrei come risultati della query "1", ma non è detto che il record attivo sia quella avente per ID "1", pertanto richiamerei molto probabilmente il record sbagliato (ovvero non attivo).
Altrimenti, e qui mi servirebbe nuovamente aiuto, si dovrebbe scegliere casualmente un ID solamente tra quelli attivi (e non il numero, inteso come totale, dei record attivi come avviane attualmente).
Quindi, per riportare brevemente quella che è la mia esigenza, ho bisogno di ottenere un ID casuale tra quelli dei record attivi.

Rispondi quotando