Obtener valores aleatorios en MySQL

Preet Sanghavi 30 enero 2023
  1. Inserción de entradas en la tabla student_dates utilizando la instrucción INSERT
  2. Obtener aleatoriamente los valores de la tabla student_dates utilizando la instrucción ORDER BY
Obtener valores aleatorios en MySQL

Este tutorial tiene como objetivo comprender cómo ordenar u ordenar valores o registros de una tabla de forma aleatoria en MySQL.

La mayoría de las empresas y organizaciones que utilizan MySQL para el análisis o la visualización de datos necesitan ordenar diferentes valores de tabla de sus usuarios en función de diferentes criterios.

Una de las técnicas más eficientes para probar si los diferentes usuarios en una tabla MySQL se verifican correctamente es obtener acceso a los usuarios de forma aleatoria. Puede ayudar a evitar conflictos y comprender mejor al usuario en función de una plataforma en particular.

MySQL ayuda a los analistas a obtener acceso a registros aleatorios mediante la función RAND(). Además, necesitamos usar la palabra clave LIMIT para obtener datos rápidamente usando la instrucción RAND().

Por ejemplo, si los analistas necesitan obtener rápidamente diez registros de una tabla con más de 100 000 registros, pueden usar la función RAND() con la palabra clave LIMIT. Tratemos de entender esta afirmación con mayor profundidad.

Sin embargo, antes de comenzar, creamos un conjunto de datos ficticio para trabajar. Aquí creamos una tabla, student_dates, junto con algunas filas.

-- create the table student_dates
CREATE TABLE student_dates(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_date date,
  primary key(stu_id)
);

Inserción de entradas en la tabla student_dates utilizando la instrucción INSERT

La consulta anterior crea una tabla con el nombre student_dates. Ahora, con la ayuda de la declaración INSERT, intentemos agregar datos para algunos estudiantes. Esta operación se puede hacer de la siguiente manera:

-- insert rows to the table student_dates
INSERT INTO student_dates(stu_id,stu_firstName,stu_date) 
 VALUES(1,"Preet",STR_TO_DATE('24-May-2005', '%d-%M-%Y')),
 (2,"Dhruv",STR_TO_DATE('14-June-2001', '%d-%M-%Y')),
 (3,"Mathew",STR_TO_DATE('13-December-2020', '%d-%M-%Y')),
 (4,"Jeet",STR_TO_DATE('14-May-2003', '%d-%M-%Y')),
 (5,"Steyn",STR_TO_DATE('19-July-2002', '%d-%M-%Y'));

El código anterior ingresaría los datos del estudiante en la tabla student_dates. Podemos visualizar esta tabla con el siguiente comando.

SELECT * from student_dates;

Producción :

stu_id	stu_firstName	stu_date
1		Preet			2005-05-24
2		Dhruv			2001-06-14
3		Mathew			2020-12-13
4		Jeet			2003-05-14
5		Steyn			2002-07-19

Obtener aleatoriamente los valores de la tabla student_dates utilizando la instrucción ORDER BY

Como se mencionó anteriormente, podemos usar la declaración sort by en MySQL para ordenar valores. Esta lógica también se puede utilizar para ordenar registros en una tabla de forma aleatoria.

Sintaxis:

SELECT * from name_of_the_table
ORDER BY RAND();

Como podemos ver arriba, todos los registros de la tabla se ordenarían aleatoriamente usando la función RAND(). Podemos aplicar este concepto a nuestra tabla student_dates. Esta operación se puede realizar con la siguiente consulta.

SELECT * from student_dates
ORDER BY RAND();

Producción :

stu_id	stu_firstName	stu_date
5		Steyn			2002-07-19
3		Mathew			2020-12-13
4		Jeet			2003-05-14
1		Preet			2005-05-24
2		Dhruv			2001-06-14

Como podemos ver en el bloque de código mencionado anteriormente, todos los registros de la tabla student_dates se ordenan aleatoriamente.

Producción :

stu_id	stu_firstName	stu_date
4		Jeet			2003-05-14
1		Preet			2005-05-24
2		Dhruv			2001-06-14
3		Mathew			2020-12-13
5		Steyn			2002-07-19

Como podemos ver en los bloques de salida anteriores, los valores se ordenan aleatoriamente.

Ahora, para obtener detalles rápidamente con un límite superior particular establecido para la función aleatoria, podemos usar la palabra clave LIMIT como se sugirió anteriormente. Esta operación se puede realizar con la siguiente sintaxis.

SELECT * from student_dates
ORDER BY RAND()
LIMIT 3;

Como se muestra en la consulta anterior, nuestro objetivo es obtener solo tres registros obtenidos aleatoriamente de nuestra tabla student_dates.

Producción :

stu_id	stu_firstName	stu_date
2		Dhruv			2001-06-14
1		Preet			2005-05-24
3		Mathew			2020-12-13

Así, con la ayuda de la declaración ORDER BY y la función RAND(), y la palabra clave LIMIT, podemos ordenar eficientemente diferentes registros de una tabla en particular en MySQL de forma aleatoria y rápida.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub