Genere cadenas aleatorias y únicas en MySQL

Mehvish Ashiq 30 enero 2023
  1. Utilice MD5(), RAND() y SUBSTR() para generar cadenas aleatorias y únicas en MySQL
  2. Utilice UUID() para generar cadenas aleatorias y únicas en MySQL
Genere 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)
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Artículo relacionado - MySQL String