Comment obtenir un nombre aléatoire [10, 20, 30, 50]
dans MySQL.
J'ai essayé d'utiliser ROUND (RAND () * (50 - 10) + 10)
mais cela générera des nombres tels que 11, 12, 24
que je ne veux pas.
Je me demande si ce code va:
FLOOR((RAND([5,10,15,20,25,30,35,40]))
mais comment?
Je veux définir ma colonne de quantité pour choisir au hasard 10 , 20, 30 ou 50. pas 11, 12 ou autre nombre possible en utilisant ROUND (RAND () * (50-10) + 10).
J'espère que c'est clair.
3 Réponses :
essayez ceci, cela fonctionne bien
ROUND(RAND() * (5-1))*10
ça marche comme du charme! merci .. je modifie en ROUND (RAND () * (5-1) + 1) * 10 pour empêcher 0 sortie
Il renverra également zéro. Il faudra peut-être l'ajuster un peu.
Cela reviendra cependant 40. Mais plus important encore, n'utilisez pas la fonction ROUND avec RAND ... sinon les première et dernière valeurs auront une probabilité moindre par rapport aux valeurs du milieu.
Si vous voulez un nombre qui peut être conçu par 10, utilisez Div puis multipliez par 10
SELECT ((FLOOR (RAND () * (50-10 + 1)) + 10) DIV 10) * 10;
Ce qui suit vous donnera l'un des nombres d'une liste :
SELECT ELT(FLOOR(RAND() * 4) + 1, 10, 20, 30, 50);
Ici 4 est la taille de la liste et un est ajouté puisque ELT
est basé sur un .
Si vous connaissez les nombres que vous souhaitez générer, alors ils ne sont pas vraiment aléatoires, non? Peut-être pourriez-vous mieux expliquer ce que vous essayez de faire ici?
utilisez une boucle et non une fonction rand ().