MySQL :: Aufgabe #2
2 Lösungen
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.
Die zurückgegebenen Daten sollen zufällig vertauscht werden.
Lösungen:
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:
Beispiel:
SQL-Code
select * from table order by rand() desc
Die Tabelle
Zufällige Ausgabe der Datensätze:
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:
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:
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)