Wie in diesem Artikel erläutert , müssen Sie zum Mischen der SQL-Ergebnismenge einen datenbankspezifischen Funktionsaufruf verwenden.
Beachten Sie, dass sich das Sortieren einer großen Ergebnismenge mithilfe einer RANDOM-Funktion als sehr langsam herausstellen kann. Stellen Sie daher sicher, dass Sie dies bei kleinen Ergebnismengen tun.
Wenn Sie eine große Ergebnismenge mischen und anschließend einschränken müssen, ist es besser, etwas wie OracleSAMPLE(N)
oder TABLESAMPLE
in SQL Server oder PostgreSQL anstelle einer Zufallsfunktion in der ORDER BY-Klausel zu verwenden.
Angenommen, wir haben die folgende Datenbanktabelle:
Und die folgenden Zeilen in der song
Tabelle:
| id | artist | title |
|----|---------------------------------|------------------------------------|
| 1 | Miyagi & Эндшпиль ft. Рем Дигга | I Got Love |
| 2 | HAIM | Don't Save Me (Cyril Hahn Remix) |
| 3 | 2Pac ft. DMX | Rise Of A Champion (GalilHD Remix) |
| 4 | Ed Sheeran & Passenger | No Diggity (Kygo Remix) |
| 5 | JP Cooper ft. Mali-Koa | All This Love |
Orakel
Unter Oracle müssen Sie die DBMS_RANDOM.VALUE
Funktion verwenden, wie im folgenden Beispiel dargestellt:
SELECT
artist||' - '||title AS song
FROM song
ORDER BY DBMS_RANDOM.VALUE
Wenn Sie die oben genannte SQL-Abfrage unter Oracle ausführen, erhalten Sie die folgende Ergebnismenge:
| song |
|---------------------------------------------------|
| JP Cooper ft. Mali-Koa - All This Love |
| 2Pac ft. DMX - Rise Of A Champion (GalilHD Remix) |
| HAIM - Don't Save Me (Cyril Hahn Remix) |
| Ed Sheeran & Passenger - No Diggity (Kygo Remix) |
| Miyagi & Эндшпиль ft. Рем Дигга - I Got Love |
Beachten Sie, dass die Songs dank des DBMS_RANDOM.VALUE
von der ORDER BY-Klausel verwendeten Funktionsaufrufs in zufälliger Reihenfolge aufgelistet werden .
SQL Server
Unter SQL Server müssen Sie die NEWID
Funktion verwenden, wie im folgenden Beispiel dargestellt:
SELECT
CONCAT(CONCAT(artist, ' - '), title) AS song
FROM song
ORDER BY NEWID()
Wenn Sie die oben genannte SQL-Abfrage unter SQL Server ausführen, erhalten Sie die folgende Ergebnismenge:
| song |
|---------------------------------------------------|
| Miyagi & Эндшпиль ft. Рем Дигга - I Got Love |
| JP Cooper ft. Mali-Koa - All This Love |
| HAIM - Don't Save Me (Cyril Hahn Remix) |
| Ed Sheeran & Passenger - No Diggity (Kygo Remix) |
| 2Pac ft. DMX - Rise Of A Champion (GalilHD Remix) |
Beachten Sie, dass die Songs dank des NEWID
von der ORDER BY-Klausel verwendeten Funktionsaufrufs in zufälliger Reihenfolge aufgelistet werden .
PostgreSQL
Unter PostgreSQL müssen Sie die random
Funktion verwenden, wie im folgenden Beispiel dargestellt:
SELECT
artist||' - '||title AS song
FROM song
ORDER BY random()
Wenn Sie die oben genannte SQL-Abfrage unter PostgreSQL ausführen, erhalten Sie die folgende Ergebnismenge:
| song |
|---------------------------------------------------|
| 2Pac ft. DMX - Rise Of A Champion (GalilHD Remix) |
| JP Cooper ft. Mali-Koa - All This Love |
| Ed Sheeran & Passenger - No Diggity (Kygo Remix) |
| HAIM - Don't Save Me (Cyril Hahn Remix) |
| Miyagi & Эндшпиль ft. Рем Дигга - I Got Love |
Beachten Sie, dass die Songs dank des random
von der ORDER BY-Klausel verwendeten Funktionsaufrufs in zufälliger Reihenfolge aufgelistet werden .
MySQL
Unter MySQL müssen Sie die RAND
Funktion verwenden, wie im folgenden Beispiel dargestellt:
SELECT
CONCAT(CONCAT(artist, ' - '), title) AS song
FROM song
ORDER BY RAND()
Wenn Sie die oben genannte SQL-Abfrage unter MySQL ausführen, erhalten Sie die folgende Ergebnismenge:
| song |
|---------------------------------------------------|
| HAIM - Don't Save Me (Cyril Hahn Remix) |
| Ed Sheeran & Passenger - No Diggity (Kygo Remix) |
| Miyagi & Эндшпиль ft. Рем Дигга - I Got Love |
| 2Pac ft. DMX - Rise Of A Champion (GalilHD Remix) |
| JP Cooper ft. Mali-Koa - All This Love |
Beachten Sie, dass die Songs dank des RAND
von der ORDER BY-Klausel verwendeten Funktionsaufrufs in zufälliger Reihenfolge aufgelistet werden .