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):