Récupérer des valeurs aléatoires dans MySQL
-
Insertion d’entrées dans la table
student_dates
à l’aide de l’instructionINSERT
-
Récupération aléatoire des valeurs de la table
student_dates
à l’aide de l’instructionORDER BY
Ce tutoriel vise à comprendre comment trier ou ordonner les valeurs ou les enregistrements d’une table de manière aléatoire dans MySQL.
La plupart des entreprises et des organisations qui utilisent MySQL pour l’analyse ou la visualisation de données doivent trier les différentes valeurs de table de leurs utilisateurs en fonction de différents critères.
L’une des techniques les plus efficaces pour tester si différents utilisateurs d’une table MySQL sont correctement vérifiés consiste à obtenir un accès aléatoire aux utilisateurs. Cela peut aider à éviter les conflits et à mieux comprendre l’utilisateur en fonction d’une plate-forme particulière.
MySQL aide les analystes à accéder à des enregistrements aléatoires à l’aide de la fonction RAND()
. De plus, nous devons utiliser le mot-clé LIMIT
pour récupérer rapidement les données à l’aide de l’instruction RAND()
.
Par exemple, si les analystes ont besoin d’extraire rapidement dix enregistrements d’une table de plus de 100 000 enregistrements, ils peuvent utiliser la fonction RAND()
avec le mot-clé LIMIT
. Essayons de comprendre cette affirmation plus en profondeur.
Cependant, avant de commencer, nous créons un jeu de données factice avec lequel travailler. Ici, nous créons une table, student_dates
, avec quelques lignes.
-- 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)
);
Insertion d’entrées dans la table student_dates
à l’aide de l’instruction INSERT
La requête précédente crée une table avec le nom student_dates
. Maintenant, à l’aide de l’instruction INSERT
, essayons d’ajouter des données pour quelques étudiants. Cette opération peut se faire comme suit :
-- 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'));
Le code ci-dessus entrerait les données de l’étudiant dans la table student_dates
. Nous pouvons visualiser ce tableau avec la commande suivante.
SELECT * from student_dates;
Production :
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
Récupération aléatoire des valeurs de la table student_dates
à l’aide de l’instruction ORDER BY
Comme mentionné ci-dessus, nous pouvons utiliser l’instruction sort by
dans MySQL pour trier les valeurs. Cette logique peut également être utilisée pour trier les enregistrements d’une table de manière aléatoire.
Syntaxe:
SELECT * from name_of_the_table
ORDER BY RAND();
Comme nous pouvons le voir ci-dessus, tous les enregistrements de la table seraient ordonnés de manière aléatoire à l’aide de la fonction RAND()
. Nous pouvons appliquer ce concept à notre table student_dates
. Cette opération peut être effectuée avec la requête suivante.
SELECT * from student_dates
ORDER BY RAND();
Production :
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
Comme nous pouvons le voir dans le bloc de code susmentionné, tous les enregistrements de la table student_dates
sont triés de manière aléatoire.
Production :
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
Comme nous pouvons le voir à partir de la sortie ci-dessus des blocs, les valeurs sont triées de manière aléatoire.
Maintenant, pour récupérer rapidement les détails avec une limite supérieure particulière définie sur la fonction aléatoire, nous pouvons utiliser le mot-clé LIMIT
comme suggéré ci-dessus. Cette opération peut être effectuée avec la syntaxe suivante.
SELECT * from student_dates
ORDER BY RAND()
LIMIT 3;
Comme indiqué dans la requête ci-dessus, nous visons à récupérer seulement trois enregistrements extraits de manière aléatoire de notre table student_dates
.
Production :
stu_id stu_firstName stu_date
2 Dhruv 2001-06-14
1 Preet 2005-05-24
3 Mathew 2020-12-13
Ainsi, à l’aide de l’instruction ORDER BY
et de la fonction RAND()
, et du mot-clé LIMIT
, nous pouvons ordonner efficacement et de manière aléatoire et rapide différents enregistrements d’une table particulière dans MySQL.