Abrufen von Zufallswerten in MySQL
-
Einfügen von Einträgen in die Tabelle
student_dates
mit derINSERT
-Anweisung -
Zufälliges Abrufen der Werte der Tabelle
student_dates
mit der AnweisungORDER BY
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.