ho una tabella con un unico campo.
Devo poter selezionare il primo valore memorizzato nella tabella, oppure uno casuale. Come faccio?
![]()
ho una tabella con un unico campo.
Devo poter selezionare il primo valore memorizzato nella tabella, oppure uno casuale. Come faccio?
![]()
è meglio tacere e far credere di essere stupido piuttosto che parlare e togliere ogni dubbio
Se non hai un id non puoi stabilire quale sia il primo inserito. Puoi però estrarre secondo un certo ordinamento...
DESC -> ordine decrescente, quindi prendi il maggiorecodice:SELECT * FROM tabella ORDER BY(nome_campo) DESC|ASC LIMIT 0,1
ASC -> ordine crescente, quindi prendi il minore
Per prendere un record casuale:
codice:SELECT * FROM tabella ORDER BY RAND() LIMIT 1![]()
Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone
per avere un record casuale potresti prendere il totale delle righe, utilizzare la funzione php rand() per determinare un numero casuale tra 1 ed il totale delle righe e poi usare il risultato come chiave primaria del record da estrarre.
perché complicarsi la vita quando c'è già una funzione che fa quello che serve?Originariamente inviato da aeterna
per avere un record casuale potresti prendere il totale delle righe, utilizzare la funzione php rand() per determinare un numero casuale tra 1 ed il totale delle righe e poi usare il risultato come chiave primaria del record da estrarre.![]()
Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone
non intendevo mettere in dubbio la tua solzione, ho solo postato in contemporanea. non pensavo esistesse una funzione simile.
puoi spiegarmi che significa ORDER BY RAND() ?
cioè l'ORDER BY dovrebbe essere seguito dal nome di un campo, così invece è seguito da un numero.
mi sa che ignoro molto del mysql... :master:
grazie mille
si lo so!la mia era solo una battuta!tranquillo!Originariamente inviato da aeterna
non intendevo mettere in dubbio la tua solzione, ho solo postato in contemporanea.
ORDER BY RAND() significa che estrae record casuali [ordinamento casuale] e il limit gli dice di estrarne uno soltanto.Originariamente inviato da aeterna
non pensavo esistesse una funzione simile.
puoi spiegarmi che significa ORDER BY RAND() ?
cioè l'ORDER BY dovrebbe essere seguito dal nome di un campo, così invece è seguito da un numero.
mi sa che ignoro molto del mysql... :master:
grazie mille
![]()
Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone
tranquillA prego...Originariamente inviato da 13manuel84
si lo so!la mia era solo una battuta!tranquillo!![]()
grazie mille per avermi fornito una nozione in più.
sorryOriginariamente inviato da aeterna
tranquillA prego...
grazie mille per avermi fornito una nozione in più.
di niente!
Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone
grande manuel: quello che mi serviva.
grazie anche aeterna
![]()
è meglio tacere e far credere di essere stupido piuttosto che parlare e togliere ogni dubbio
Susate se faccio "risorgere" questa discussione ma è l'unica che ho trovato che parla di ordinamento casuale dei record.
Ok per la funzione ORDER BY RAND() ma se devo dividere per pagine i risultati ordinati casualmente, quando cambio pagina mantiene il primo ordinamento o mi riprende i record casualmente?
In pratica ho una lista lunghissima di indirizzi e ne voglio visualizzare 10 per pagina ordinati in modo casuale... come faccio a far scorrere tutte le pagine e visualizzare tutti i record senza doppioni o omissioni?
Grazie in anticipo