Récupérer des valeurs aléatoires dans MySQL

Preet Sanghavi 30 janvier 2023
  1. Insertion d’entrées dans la table student_dates à l’aide de l’instruction INSERT
  2. Récupération aléatoire des valeurs de la table student_dates à l’aide de l’instruction ORDER BY
Récupérer des valeurs aléatoires dans MySQL

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.

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