Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Random "pesata"

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    150

    Random "pesata"

    Salve a tutti, vorrei costruire una select random pesata: ovvero la riga che devo ottenere deve essere random, però quelle che "pesano" di più dovrebbero venire fuori con maggiore frequenza.

    tutte le righe sono uguali, ma alcune sono più uguali di altre

    scherzi a parte, ho googlato un po' a giro e ho trovato questa select

    codice:
    SELECT * FROM mia_tabella WHERE mia condizione ORDER BY RAND() * (1/campo_peso)
    però mi trovo di fronte a due problemi:
    1) questa select è estremamente inefficiente, visto che scorrere tutta la tabella e creare un numero random
    2) nel mio caso il campo che deve dare importanza non si trova nella solita tabella, ma da un'altra parte. Per spiegarmi: devo tirare fuori un link che gli utenti postano (in maniera random), il criterio della frequenza è il numero di punti che questi utenti hanno (e si trovano in un'altra tabella).

    Come potrei ottenere il solito risultato affidandomi a PHP invece che al database?
    potrei usare degli array e poi fare la shuffle, ma come faccio a gestire il peso che dovrebbe avere ogni link?

    grazie a tutti in anticipo

  2. #2

    Re: Random "pesata"

    Originariamente inviato da tampe125
    potrei usare degli array e poi fare la shuffle, ma come faccio a gestire il peso che dovrebbe avere ogni link?
    Inserisci nell'array i link X volte tante quanto il loro peso. Poi array_rand() etc. etc.

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.