MySQL :: Aufgabe #2

2 Lösungen Lösungen öffentlich

Abfrage in zufälliger Reihenfolge

Anfänger - MySQL von pocki - 26.11.2014 um 12:44 Uhr
Schreibe eine Abfrage, welche die Daten in einer zufälligen Reihenfolge zurückgibt.
Die zurückgegebenen Daten sollen zufällig vertauscht werden.

Lösungen:

1x
vote_ok
von Marcinek (70 Punkte) - 19.12.2014 um 00:07 Uhr
Der Trick bei der Lösung dieser Aufgabe besteht dabei nach einer zufallszahl zu sortieren. Hierfür kann in MySQL die Funktion "rand()" verwendet werden.

Beispiel:
Quellcode ausblenden SQL-Code
select * from table order by rand() desc
vote_ok
von Exception (7090 Punkte) - 26.04.2019 um 13:13 Uhr
Die Tabelle
Quellcode ausblenden SQL-Code
DESCRIBE erpel.blub;

Konsolenausgabe:


MariaDB [erpel]> describe blub;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| value0 | varchar(45) | NO | | NULL | |
| value1 | varchar(45) | NO | | NULL | |
| value2 | varchar(45) | NO | | NULL | |
| value3 | varchar(45) | NO | | NULL | |
| value4 | varchar(45) | NO | | NULL | |
+--------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)


Zufällige Ausgabe der Datensätze:
Quellcode ausblenden SQL-Code
SELECT * FROM erpel.blub ORDER BY RAND();

Zu beachten ist hierbei der Teil "ORDER BY RAND()", welcher für die zufällige Rückgabe der Datensätze sorgt.

Resultate nach mehrfacher Ausführung:

Konsolenausgabe:


MariaDB [erpel]> SELECT * FROM erpel.blub ORDER BY RAND();
+----+--------+--------+--------+--------+--------+
| id | value0 | value1 | value2 | value3 | value4 |
+----+--------+--------+--------+--------+--------+
| 2 | aa | bb | cc | dd | ee |
| 1 | a | b | c | d | e |
| 3 | aaa | bbb | ccc | ddd | eee |
+----+--------+--------+--------+--------+--------+
3 rows in set (0.00 sec)

Konsolenausgabe:


MariaDB [erpel]> SELECT * FROM erpel.blub ORDER BY RAND();
+----+--------+--------+--------+--------+--------+
| id | value0 | value1 | value2 | value3 | value4 |
+----+--------+--------+--------+--------+--------+
| 3 | aaa | bbb | ccc | ddd | eee |
| 1 | a | b | c | d | e |
| 2 | aa | bb | cc | dd | ee |
+----+--------+--------+--------+--------+--------+
3 rows in set (0.00 sec)

Konsolenausgabe:


MariaDB [erpel]> SELECT * FROM erpel.blub ORDER BY RAND();
+----+--------+--------+--------+--------+--------+
| id | value0 | value1 | value2 | value3 | value4 |
+----+--------+--------+--------+--------+--------+
| 1 | a | b | c | d | e |
| 3 | aaa | bbb | ccc | ddd | eee |
| 2 | aa | bb | cc | dd | ee |
+----+--------+--------+--------+--------+--------+
3 rows in set (0.00 sec)

1960141

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.