Mysql
 sql >> Base de données >  >> RDS >> Mysql

Fonction MySQL RAND() - Générer un nombre aléatoire dans MySQL

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])

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 |
+----------+----------+----------+