Générer des chaînes aléatoires et uniques dans MySQL
-
Utilisez
MD5()
,RAND()
etSUBSTR()
pour générer des chaînes aléatoires et uniques dans MySQL -
Utilisez
UUID()
pour générer des chaînes aléatoires et uniques dans MySQL
Aujourd’hui, nous allons apprendre à utiliser diverses fonctions pour générer des chaînes aléatoires et uniques dans MySQL. Ces fonctions incluent MD5()
, RAND()
, SUBSTR()
et UUID()
.
Il n’y a pas de méthode intégrée pour générer des chaînes aléatoires dans MySQL, mais il existe de nombreuses autres façons d’obtenir un avantage pour répondre aux exigences. Ici, nous découvrirons les méthodes les plus simples et les plus efficaces pour générer des chaînes aléatoires et uniques dans MySQL.
Utilisez MD5()
, RAND()
et SUBSTR()
pour générer des chaînes aléatoires et uniques dans MySQL
Exemple de code :
SELECT SUBSTR(MD5(RAND()),1,8) AS RandomString;
PRODUCTION:
+--------------+
| RandomString |
+--------------+
| 7d192f5f |
+--------------+
1 row in set (0.00 sec)
La fonction MD5()
a généré la représentation de la somme de contrôle 128 bits de l’argument. Dans l’exemple ci-dessus, la valeur générée par la fonction RAND()
est l’argument de la fonction MD5()
; la fonction RAND()
produisait des valeurs aléatoires.
Cependant, le résultat de la somme de contrôle est de 32 caractères alphanumériques générés à partir de l’argument passé à la fonction MD5()
. De plus, nous avons utilisé le SUBSTR()
pour extraire une partie de la chaîne MD5()
selon les exigences de notre projet.
Le SUBSTR()
prend trois paramètres : la chaîne, la position de départ de l’extraction et la longueur. Dans l’exemple de code ci-dessus, nous sommes partis du premier caractère et avons extrait 8 chaînes de caractères de la chaîne MD5
.
Utilisez UUID()
pour générer des chaînes aléatoires et uniques dans MySQL
Exemple de code :
SELECT LEFT(UUID(), 8)
PRODUCTION:
+-----------------+
| LEFT(UUID(), 8) |
+-----------------+
| 4a1f35bc |
+-----------------+
1 row in set (0.00 sec)
Une autre méthode de production de la chaîne de 8 caractères dans MySQL est LEFT(UUID(),8)
, comme indiqué ci-dessus. La RFC 4122 (Universally Unique Identifier URN Namespace) spécifie le UUID()
(Universal Unique Identifier) qui est une valeur longue de 128 bits.
Il génère une valeur unique au monde selon le temps et l’espace. Comme les valeurs produites par UUID()
sont uniques, elles ne sont ni prévisibles ni devinables.
Cela signifie que UUID()
génère toujours une valeur aléatoire. Nous pouvons utiliser les requêtes suivantes pour obtenir des chaînes de 8 ou 10 caractères.
Exemple de code :
-- for 8 characters long string
SELECT LEFT(UUID(),8) random_string ;
-- for 10 characters long string
SELECT RIGHT(UUID(),10) random_string ;
N’oubliez pas que UUID()
génère une valeur hexadécimale composée de cinq sections séparées par un trait d’union. Ainsi, nous pouvons obtenir une chaîne contenant des chiffres, des tirets et des alphabets en fonction de la longueur de chaîne souhaitée.
Exemple de code :
SELECT UUID(), LEFT(UUID(), 8), right(uuid(),20);
PRODUCTION:
+--------------------------------------+-----------------+----------------------+
| UUID() | LEFT(UUID(), 8) | right(uuid(),20) |
+--------------------------------------+-----------------+----------------------+
| b3e73af1-d811-11ec-b138-d8d09042fdaa | b3e73b03 | ec-b138-d8d09042fdaa |
+--------------------------------------+-----------------+----------------------+
1 row in set (0.00 sec)