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 TABLESAMPLE
dans 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 song
tableau:
| 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.VALUE
fonction, 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.VALUE
appel de fonction utilisé par la clause ORDER BY.
serveur SQL
Sur SQL Server, vous devez utiliser la NEWID
fonction, 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' NEWID
appel de fonction utilisé par la clause ORDER BY.
PostgreSQL
Sur PostgreSQL, vous devez utiliser la random
fonction, 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' random
appel de fonction utilisé par la clause ORDER BY.
MySQL
Sur MySQL, vous devez utiliser la RAND
fonction, 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' RAND
appel de fonction utilisé par la clause ORDER BY.