Mysql
 sql >> Database >  >> RDS >> Mysql

Seleziona una riga casuale da MySQL (con probabilità)

Se cur_odds è cambiato raramente potresti implementare il seguente algoritmo:

1) Crea un'altra colonna prob_sum , per cui

2) Genera un numero casuale da 0 a 1:

3) Trova la prima riga per cui prob_sum > rnd (se crei un indice BTREE su prob_sum , la query dovrebbe funzionare molto più velocemente):