Obtenir une valeur aléatoire entre deux valeurs dans MySQL
Cette question découle de la nécessité de récupérer une valeur aléatoire entre deux valeurs spécifiques stockées dans Colonnes MySQL, à savoir min_value et max_value. Alors que l'interrogateur envisageait initialement d'utiliser la fonction RAND(), il a réalisé ses limites dans ce scénario.
La solution
La méthode la plus efficace pour y parvenir dans MySQL est en effet pour utiliser l'expression ROUND((RAND() * (max-min)) min). Cette formule génère un flottant aléatoire dans la plage souhaitée, qui peut ensuite être arrondi à l'entier le plus proche si nécessaire.
MySQL vs PHP
La question explore également le potentiel avantages en termes de performances de la gestion de la randomisation en PHP par rapport à MySQL. Pour enquêter sur cela, une série de tests ont été effectués, renvoyant soit uniquement la valeur aléatoire, soit des colonnes supplémentaires à côté.
Résultats
Lorsque seule la valeur aléatoire a été renvoyée, MySQL a légèrement surpassé PHP. Cependant, lorsque des colonnes supplémentaires ont été incluses dans la requête, PHP a montré un léger avantage.
Conclusion
La meilleure approche dépend des exigences spécifiques :
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!