logo

SQL-Reihenfolge nach Zufall

Wenn Sie möchten, dass der resultierende Datensatz vorhanden ist nach dem Zufallsprinzip bestellt , sollten Sie die folgenden Codes gemäß mehreren Datenbanken verwenden.

Textgröße Latex

Hier stellt sich die Frage: Was ist nötig, um einen zufälligen Datensatz oder eine Zeile aus einer Datenbank abzurufen?

Manchmal möchten Sie möglicherweise zufällige Informationen anzeigen, z Artikel, Links, Seiten usw. an Ihren Benutzer.

Wenn Sie zufällige Zeilen aus einer der Datenbanken abrufen möchten, müssen Sie je nach Datenbank einige geänderte Abfragen verwenden.

    Wählen Sie mit MySQL eine zufällige Zeile aus:

Wenn Sie mit MY SQL eine zufällige Zeile zurückgeben möchten, verwenden Sie die folgende Syntax:

js-Array
 SELECT column FROM table ORDER BY RAND () LIMIT 1; 
    Wählen Sie eine zufällige Zeile mit Postgre SQL aus:
 SELECT column FROM table ORDER BY RANDOM () LIMIT 1; 
    Wählen Sie mit SQL Server eine zufällige Zeile aus:
 SELECT TOP 1 column FROM table ORDER BY NEWID (); 
    Wählen Sie eine zufällige Zeile mit Oracle aus:
 SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1; 
    Wählen Sie eine zufällige Zeile mit IBM DB2 aus:
 SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY; 

Um dieses Konzept praktisch zu verstehen, sehen wir uns einige Beispiele für die Verwendung der MySQL-Datenbank an. Stellen Sie sich vor, wir haben in der Datenbank Tabellenelemente mit den folgenden Daten erstellt:

Tabelle: Artikel

AUSWEIS Artikelname Artikel Menge Stückpreis Kaufdatum
1 Seife 5 200 2021-07-08
2 Zahnpasta 2 80 10.07.2021
3 Stift 10 fünfzig 12.07.2021
4 Flasche 1 250 13.07.2021
5 Bürste 3 90 15.07.2021

Angenommen, wir möchten einen beliebigen zufälligen Datensatz aus der Artikeltabelle abrufen.

Wir werden die Abfrage wie folgt schreiben:

 mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1; 

Möglicherweise erhalten wir folgende Ergebnisse:

dünner Algorithmus
AUSWEIS Artikelname Artikel Menge Stückpreis Kaufdatum
3 Stift 10 zwanzig 12.07.2021

Versuchen wir nun, dieselbe Abfrage noch einmal auszuführen.

 mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1; 

Möglicherweise erhalten wir folgende Ergebnisse:

AUSWEIS Artikelname Artikel Menge Stückpreis Kaufdatum
5 Bürste 3 90 15.07.2021

Aus den obigen Ergebnissen können wir schließen, dass wir beide Male unterschiedliche Datensätze als Ausgabe erhalten, obwohl wir dieselbe Abfrage zweimal ausgeführt haben. Die RAND()-Funktion hat beide Male zufällige Datensätze für dieselbe Abfrage aus einer einzelnen Tabelle ausgewählt. Selbst wenn wir dieselbe Abfrage erneut ausführen, erhalten wir daher jedes Mal eine andere Ausgabe. Es besteht die seltene Möglichkeit, mit der RAND()-Funktion nacheinander denselben Datensatz abzurufen.

Angenommen, Sie möchten, dass alle Datensätze der Tabelle zufällig abgerufen werden.

Dazu müssen wir die folgende Abfrage ausführen:

 mysql> SELECT * FROM items ORDER BY RAND (); 

Möglicherweise erhalten wir folgende Ergebnisse:

Zeile Autocad-Befehl
AUSWEIS Artikelname Artikel Menge Stückpreis Kaufdatum
4 Flasche 1 250 13.07.2021
5 Bürste 3 90 15.07.2021
1 Seife 5 200 08.07.2021
2 Zahnpasta 2 80 10.07.2021
3 Stift 10 fünfzig 12.07.2021

Es besteht auch die Möglichkeit, dass die Datensätze anders angeordnet werden, wenn wir die RAND()-Funktion erneut für die Mitarbeitertabelle ausführen.