Abrufen von Zufallswerten in MySQL

Preet Sanghavi 30 Januar 2023
  1. Einfügen von Einträgen in die Tabelle student_dates mit der INSERT-Anweisung
  2. Zufälliges Abrufen der Werte der Tabelle student_dates mit der Anweisung ORDER BY
Abrufen von Zufallswerten in MySQL

Dieses Tutorial soll verstehen, wie man Werte oder Datensätze einer Tabelle in MySQL zufällig sortiert oder ordnet.

Die meisten Unternehmen und Organisationen, die MySQL zur Datenanalyse oder -visualisierung verwenden, müssen verschiedene Tabellenwerte ihrer Benutzer nach unterschiedlichen Kriterien sortieren.

Eine der effizientesten Techniken, um zu testen, ob verschiedene Benutzer in einer MySQL-Tabelle korrekt überprüft werden, besteht darin, zufällig Zugriff auf Benutzer zu erhalten. Es kann helfen, Konflikte zu vermeiden und den Benutzer basierend auf einer bestimmten Plattform besser zu verstehen.

MySQL unterstützt Analysten dabei, mithilfe der Funktion RAND() Zugriff auf zufällige Datensätze zu erhalten. Darüber hinaus müssen wir das Schlüsselwort LIMIT verwenden, um Daten schnell mit der Anweisung RAND() abzurufen.

Wenn Analysten beispielsweise schnell zehn Datensätze aus einer Tabelle mit mehr als 100.000 Datensätzen abrufen müssen, können sie die Funktion RAND() mit dem Schlüsselwort LIMIT verwenden. Versuchen wir, diese Aussage genauer zu verstehen.

Bevor wir jedoch beginnen, erstellen wir einen Dummy-Datensatz, mit dem wir arbeiten können. Hier erstellen wir eine Tabelle, student_dates, zusammen mit ein paar Zeilen.

-- 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)
);

Einfügen von Einträgen in die Tabelle student_dates mit der INSERT-Anweisung

Die vorherige Abfrage erstellt eine Tabelle mit dem Namen student_dates. Versuchen wir nun, mit Hilfe der INSERT-Anweisung Daten für einige Schüler hinzuzufügen. Dieser Vorgang kann wie folgt durchgeführt werden:

-- 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'));

Der obige Code würde die Studentendaten in die Tabelle student_dates eintragen. Wir können diese Tabelle mit dem folgenden Befehl visualisieren.

SELECT * from student_dates;

Ausgabe:

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

Zufälliges Abrufen der Werte der Tabelle student_dates mit der Anweisung ORDER BY

Wie oben erwähnt, können wir die sort by-Anweisung in MySQL verwenden, um Werte zu sortieren. Diese Logik kann auch verwendet werden, um Datensätze in einer Tabelle zufällig zu sortieren.

Syntax:

SELECT * from name_of_the_table
ORDER BY RAND();

Wie wir oben sehen können, würden alle Tabellendatensätze mit der Funktion RAND() zufällig geordnet. Wir können dieses Konzept auf unsere Tabelle student_dates anwenden. Diese Operation kann mit der folgenden Abfrage durchgeführt werden.

SELECT * from student_dates
ORDER BY RAND();

Ausgabe:

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

Wie wir im oben genannten Codeblock sehen können, werden alle Datensätze der Tabelle student_dates zufällig sortiert.

Ausgabe:

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

Wie wir aus der Ausgabe über den Blöcken sehen können, werden die Werte zufällig sortiert.

Um jetzt Details schnell mit einer bestimmten Obergrenze für die Zufallsfunktion abzurufen, können wir das Schlüsselwort LIMIT wie oben vorgeschlagen verwenden. Diese Operation kann mit der folgenden Syntax ausgeführt werden.

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

Wie in der obigen Abfrage gezeigt, zielen wir darauf ab, nur drei zufällig abgerufene Datensätze aus unserer Tabelle student_dates abzurufen.

Ausgabe:

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

So können wir mit Hilfe der ORDER BY-Anweisung und der RAND()-Funktion sowie dem LIMIT-Schlüsselwort effizient verschiedene Datensätze einer bestimmten Tabelle in MySQL zufällig und schnell anordnen.

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