Obtener valores aleatorios en MySQL
-
Inserción de entradas en la tabla
student_dates
utilizando la instrucciónINSERT
-
Obtener aleatoriamente los valores de la tabla
student_dates
utilizando la instrucciónORDER BY
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.