Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélectionnez une ligne aléatoire de MySQL (avec probabilité)

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