Si cur_odds
est rarement modifié, vous pouvez implémenter l'algorithme suivant :
1) Créez une autre colonne prob_sum
, pour lequel
2) Générez un nombre aléatoire de 0 à 1 :
3) Trouver la première ligne pour laquelle prob_sum > rnd
(si vous créez un index BTREE sur le prob_sum
, la requête devrait fonctionner beaucoup plus rapidement) :