Comme je l'ai expliqué dans cet article , pour mélanger l'ensemble de résultats SQL, vous devez utiliser un appel de fonction spécifique à la base de données.
Notez que le tri d'un grand ensemble de résultats à l'aide d'une fonction RANDOM peut s'avérer très lent, alors assurez-vous de le faire sur de petits ensembles de résultats.
Si vous devez mélanger un ensemble de résultats volumineux et le limiter ensuite, il est préférable d'utiliser quelque chose comme OracleSAMPLE(N) ou TABLESAMPLEdans SQL Server ou PostgreSQL au lieu d'une fonction aléatoire dans la clause ORDER BY.
Donc, en supposant que nous ayons la table de base de données suivante:

Et les lignes suivantes du songtableau:
| 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 |
Oracle
Sur Oracle, vous devez utiliser la DBMS_RANDOM.VALUEfonction, comme illustré par l'exemple suivant:
SELECT
artist||' - '||title AS song
FROM song
ORDER BY DBMS_RANDOM.VALUE
Lors de l'exécution de la requête SQL susmentionnée sur Oracle, nous allons obtenir le jeu de résultats suivant:
| 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 |
Notez que les chansons sont répertoriées dans un ordre aléatoire, grâce à l' DBMS_RANDOM.VALUEappel de fonction utilisé par la clause ORDER BY.
serveur SQL
Sur SQL Server, vous devez utiliser la NEWIDfonction, comme illustré par l'exemple suivant:
SELECT
CONCAT(CONCAT(artist, ' - '), title) AS song
FROM song
ORDER BY NEWID()
Lors de l'exécution de la requête SQL susmentionnée sur SQL Server, nous allons obtenir le jeu de résultats suivant:
| 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) |
Notez que les chansons sont répertoriées dans un ordre aléatoire, grâce à l' NEWIDappel de fonction utilisé par la clause ORDER BY.
PostgreSQL
Sur PostgreSQL, vous devez utiliser la randomfonction, comme illustré par l'exemple suivant:
SELECT
artist||' - '||title AS song
FROM song
ORDER BY random()
Lors de l'exécution de la requête SQL susmentionnée sur PostgreSQL, nous allons obtenir le jeu de résultats suivant:
| 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 |
Notez que les chansons sont répertoriées dans un ordre aléatoire, grâce à l' randomappel de fonction utilisé par la clause ORDER BY.
MySQL
Sur MySQL, vous devez utiliser la RANDfonction, comme illustré par l'exemple suivant:
SELECT
CONCAT(CONCAT(artist, ' - '), title) AS song
FROM song
ORDER BY RAND()
Lors de l'exécution de la requête SQL susmentionnée sur MySQL, nous allons obtenir le jeu de résultats suivant:
| 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 |
Notez que les chansons sont répertoriées dans un ordre aléatoire, grâce à l' RANDappel de fonction utilisé par la clause ORDER BY.