• User Attivo

    Fare query con rand()

    ciao,
    Se ho una tabella con circa 150.000 record, se uso la funzione rand() per estrarre dei dati dovrebbe essere velocissima giusto?
    Prechè pensavo...se li estrae a caso...non dovrebbe metterci molto anche se ci sono molti record nella tabella... giusto????


  • User Attivo

    Se in tabella c'è un campo progressivo auto increment che quindi è anche chiave primaria la ricerca è veloce.

    Ciao


  • Super User

    @pazzomania said:

    ciao,
    Se ho una tabella con circa 150.000 record, se uso la funzione rand() per estrarre dei dati dovrebbe essere velocissima giusto?
    Prechè pensavo...se li estrae a caso...non dovrebbe metterci molto anche se ci sono molti record nella tabella... giusto????

    Non ricordo bene, però una volta che l'ho usata, era molto lenta. Però non mi ricordo il tipo di query.


  • User Attivo

    Se supponi di avere un progressivo, la cosa potrebbe essere così :

    
    $sql = 'Select max(progressivo) as totale from tabella';
    $result = mysql_query($sql)
    $row = mysql_fetch_assoc($result)
    $totale = $row['totale']
    $record = rand(1,$totale);
    $sql = 'select * from tabella where progressivo = '.$totale;
    
    

    Se progressivo è chiave primaria, dovrebbe essere abbastanza veloce.

    Ciao


  • User Attivo

    @Dragone67 said:

    Se supponi di avere un progressivo, la cosa potrebbe essere così :

    >
    $sql = 'Select max(progressivo) as totale from tabella';
    $result = mysql_query($sql)
    $row = mysql_fetch_assoc($result)
    $totale = $row['totale']
    $record = rand(1,$totale);
    $sql = 'select * from tabella where progressivo = '.$totale;
    
    >```
     
    Se progressivo è chiave primaria, dovrebbe essere abbastanza veloce.
     
    Ciao
     
    cosi pero' mi estre solo il piu' alto... mi servono piu' record a me..
    e casuali...non quello con l'id piu alto