Dans MySQL, le RAND()
La fonction vous permet de générer un nombre aléatoire. Plus précisément, la fonction renvoie une valeur aléatoire à virgule flottante v dans l'intervalle 0 <= v < 1.0
.
Vous pouvez également influencer le nombre aléatoire en fournissant une valeur de départ comme argument.
Syntaxe
La syntaxe ressemble à ceci :
RAND([N])
Où N
est une valeur de départ facultative que vous pouvez utiliser pour influencer le résultat.
Exemple 1 – Aucun argument
Voici un exemple de base pour montrer ce qui se passe lorsque nous ne fournissons pas d'argument.
SELECT RAND();
Résultat :
+--------------------+ | RAND() | +--------------------+ | 0.4335442291885095 | +--------------------+
Le résultat n'est pas une constante - il sera différent à chaque fois que vous l'exécuterez.
Voici un exemple de ce qui se passe lorsque nous exécutons plusieurs RAND()
fonctionnent ensemble.
SELECT RAND() 'Result 1', RAND() 'Result 2', RAND() 'Result 3';
Résultat :
+--------------------+---------------------+---------------------+ | Result 1 | Result 2 | Result 3 | +--------------------+---------------------+---------------------+ | 0.9413559538697414 | 0.40614711251682334 | 0.20666773170853753 | +--------------------+---------------------+---------------------+
Exemple 2 - Utilisation d'une valeur de départ
Comme mentionné, vous pouvez passer un argument pour déterminer la valeur de départ. Cela vous permet d'influencer la sortie de la fonction.
SELECT RAND(5);
Résultat :
+---------------------+ | RAND(5) | +---------------------+ | 0.40613597483014313 | +---------------------+
Dans ce cas, la fonction renverra la même valeur à chaque fois si une valeur d'argument égale est fournie.
SELECT RAND(5) 'Result 1', RAND(5) 'Result 2', RAND(5) 'Result 3';
Résultat :
+---------------------+---------------------+---------------------+ | Result 1 | Result 2 | Result 3 | +---------------------+---------------------+---------------------+ | 0.40613597483014313 | 0.40613597483014313 | 0.40613597483014313 | +---------------------+---------------------+---------------------+
Exemple 3 - Utilisation de RAND() dans le cadre d'une expression
Vous pouvez utiliser le RAND()
fonction dans le cadre d'une expression.
SELECT RAND()*10;
Résultat :
+-------------------+ | RAND()*10 | +-------------------+ | 8.148973517258627 | +-------------------+
Exemple 4 - Retourner un entier aléatoire entre deux nombres
Vous pouvez combiner le RAND()
fonction avec le FLOOR()
fonction pour renvoyer un entier aléatoire entre deux nombres.
Voici comment générer un entier entre 5 et 10 (inclus).
SELECT FLOOR(RAND()*(10-5+1)+5);
Résultat :
+--------------------------+ | FLOOR(RAND()*(10-5+1)+5) | +--------------------------+ | 7 | +--------------------------+
Exécutons le même code plusieurs fois pour voir les différents résultats.
SELECT FLOOR(RAND()*(10-5+1)+5) 'Result 1', FLOOR(RAND()*(10-5+1)+5) 'Result 2', FLOOR(RAND()*(10-5+1)+5) 'Result 3';
Résultat :
+----------+----------+----------+ | Result 1 | Result 2 | Result 3 | +----------+----------+----------+ | 7 | 9 | 6 | +----------+----------+----------+