


Voici quelques options de titre, en mettant l'accent sur l'aspect de la question : Option 1 (direct et clair) : * Comment générer des entiers aléatoires dans une plage dans MySQL ? Option 2 (concentration sur le problème et la solution) : *
Oct 26, 2024 am 09:08 AMMySQL : Générer des valeurs aléatoires dans une plage
Problème :
Vous avez une table MySQL avec deux colonnes, min_value et max_value. Vous souhaitez récupérer une valeur aléatoire entre ces deux valeurs.
La fonction RAND() de MySQL ne fournit pas directement cette fonctionnalité. La solution la plus proche est RAND() * (max-min) min, mais elle produit un flottant, pas un entier. Pour obtenir un entier, vous auriez besoin d'une autre fonction comme ROUND() pour tronquer la partie décimale, mais ce n'est pas pratique.
Solution :
La méthode la plus efficace dans MySQL doit utiliser l'expression originale ROUND((RAND() * (max-min)) min). Il s'agit également de la meilleure approche dans d'autres langages de programmation, tels qu'ActionScript, JavaScript et Python.
Comparaison des performances entre PHP et MySQL :
Si vous n'êtes pas sûr Que ce soit pour générer la valeur aléatoire en PHP ou MySQL, tenez compte du nombre de lignes impliquées. Si l'ensemble de données est volumineux, il est plus efficace d'utiliser MySQL.
Pour démontrer la différence de performances, comparons deux scénarios avec 100 000 itérations :
- MySQL (générant directement la valeur aléatoire ): 0,009 seconde
- PHP (génération de la valeur aléatoire à l'aide de PHP) : 0,011 seconde
Cependant, si vous récupérez des colonnes supplémentaires avec la valeur aléatoire, PHP devient plus efficace :
- MySQL (générant la valeur aléatoire et renvoyant des colonnes supplémentaires) : 0,013 secondes
- PHP (générant la valeur aléatoire et ne renvoyant pas de colonnes supplémentaires) : 0,008 secondes
En conclusion, pour des performances optimales, utilisez MySQL si seule la valeur aléatoire est requise, et utilisez PHP si des colonnes supplémentaires doivent être renvoyées.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
