MySQL : sélection aléatoire pondérée avec multiplicateur
Un utilisateur a rencontré un scénario dans lequel la sélection d'une entrée aléatoire dans une table MySQL devait être pondérée en fonction sur une colonne "Multiplicateur". Alors que l'approche typique implique l'utilisation de SELECT et RAND(), la question s'est posée de savoir comment réaliser l'aspect pondération.
Pour résoudre ce problème, une solution précédente proposait un classement par la valeur de -LOG(1.0 - RAND() ) divisé par le multiplicateur. Cette approche a permis d’obtenir des pondérations précises. Cependant, un inconvénient potentiel est apparu : définir le multiplicateur sur 0 pour désactiver une option entraînerait une division par zéro.
Comme alternative, filtrer les entrées avec un multiplicateur de 0 en utilisant un multiplicateur WHERE > 0 condition pourrait être envisagée. Cela garantit que les entrées désactivées ne sont pas incluses dans le processus de sélection aléatoire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!