Genere cadenas aleatorias y únicas en MySQL
-
Utilice
MD5()
,RAND()
ySUBSTR()
para generar cadenas aleatorias y únicas en MySQL -
Utilice
UUID()
para generar cadenas aleatorias y únicas en MySQL
Hoy aprenderemos a usar varias funciones para generar cadenas aleatorias y únicas en MySQL. Estas funciones incluyen MD5()
, RAND()
, SUBSTR()
y UUID()
.
No hay un método incorporado para generar cadenas aleatorias en MySQL, pero hay muchas otras formas en que podemos obtener una ventaja para cumplir con los requisitos. Aquí, aprenderemos sobre los métodos más fáciles y eficientes para generar cadenas aleatorias y únicas en MySQL.
Utilice MD5()
, RAND()
y SUBSTR()
para generar cadenas aleatorias y únicas en MySQL
Código de ejemplo:
SELECT SUBSTR(MD5(RAND()),1,8) AS RandomString;
Producción :
+--------------+
| RandomString |
+--------------+
| 7d192f5f |
+--------------+
1 row in set (0.00 sec)
La función MD5()
generó la representación de suma de comprobación de 128 bits del argumento. En el ejemplo anterior, el valor generado por la función RAND()
es el argumento de la función MD5()
; la función RAND()
producía valores aleatorios.
Sin embargo, el resultado de la suma de comprobación son 32 caracteres alfanuméricos generados a partir del argumento pasado a la función MD5()
. Además, usamos SUBSTR()
para extraer una parte de la cadena MD5
de acuerdo con los requisitos de nuestro proyecto.
El SUBSTR()
toma tres parámetros: la cadena, la posición de inicio de la extracción y la longitud. En el código de ejemplo anterior, comenzamos desde el primer carácter y extrajimos cadenas de 8 caracteres de la cadena MD5
.
Utilice UUID()
para generar cadenas aleatorias y únicas en MySQL
Código de ejemplo:
SELECT LEFT(UUID(), 8)
Producción :
+-----------------+
| LEFT(UUID(), 8) |
+-----------------+
| 4a1f35bc |
+-----------------+
1 row in set (0.00 sec)
Otro método para producir la cadena de 8 caracteres en MySQL es IZQUIERDA (UUID (), 8)
, como se indicó anteriormente. El RFC 4122 (Universally Unique Identifier URN Namespace) especificó el UUID()
(Universal Unique Identifier) que es un valor largo de 128 bits.
Genera un valor globalmente único según el tiempo y el espacio. Dado que los valores producidos por el UUID()
son únicos, no son predecibles ni adivinables.
Significa que UUID()
siempre genera un valor aleatorio. Podemos usar las siguientes consultas para obtener cadenas de 8 o 10 caracteres de longitud.
Código de ejemplo:
-- for 8 characters long string
SELECT LEFT(UUID(),8) random_string ;
-- for 10 characters long string
SELECT RIGHT(UUID(),10) random_string ;
Recuerde, el UUID()
genera un valor hexadecimal que consta de cinco secciones separadas por un guión. Entonces, podemos obtener una cadena que contenga números, guiones y letras dependiendo de la longitud deseada de la cadena.
Código de ejemplo:
SELECT UUID(), LEFT(UUID(), 8), right(uuid(),20);
Producción :
+--------------------------------------+-----------------+----------------------+
| UUID() | LEFT(UUID(), 8) | right(uuid(),20) |
+--------------------------------------+-----------------+----------------------+
| b3e73af1-d811-11ec-b138-d8d09042fdaa | b3e73b03 | ec-b138-d8d09042fdaa |
+--------------------------------------+-----------------+----------------------+
1 row in set (0.00 sec)