Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [mysql] selezione dell'elemento in testa

    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

  2. #2
    Se non hai un id non puoi stabilire quale sia il primo inserito. Puoi però estrarre secondo un certo ordinamento...

    codice:
    SELECT * FROM tabella ORDER BY(nome_campo) DESC|ASC LIMIT 0,1
    DESC -> ordine decrescente, quindi prendi il maggiore
    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

  3. #3
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110

    ...

    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.

  4. #4

    Re: ...

    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.
    perché complicarsi la vita quando c'è già una funzione che fa quello che serve?
    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

  5. #5
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110

    ...

    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

  6. #6

    Re: ...

    Originariamente inviato da aeterna
    non intendevo mettere in dubbio la tua solzione, ho solo postato in contemporanea.
    si lo so!la mia era solo una battuta!tranquillo!

    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
    ORDER BY RAND() significa che estrae record casuali [ordinamento casuale] e il limit gli dice di estrarne uno soltanto.

    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

  7. #7
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110

    ...

    Originariamente inviato da 13manuel84
    si lo so!la mia era solo una battuta!tranquillo!
    tranquillA prego...

    grazie mille per avermi fornito una nozione in più.

  8. #8

    Re: ...

    Originariamente inviato da aeterna
    tranquillA prego...

    grazie mille per avermi fornito una nozione in più.
    sorry

    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

  9. #9
    grande manuel: quello che mi serviva.
    grazie anche aeterna
    è meglio tacere e far credere di essere stupido piuttosto che parlare e togliere ogni dubbio

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    65
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.