Bu makalede açıkladığım gibi , SQL sonuç kümesini karıştırmak için veritabanına özgü bir işlev çağrısı kullanmanız gerekir.
RANDOM işlevini kullanarak büyük bir sonuç kümesini sıralamanın çok yavaş olabileceğini unutmayın, bu nedenle bunu küçük sonuç kümelerinde yaptığınızdan emin olun.
Büyük bir sonuç kümesi karıştırmak ve daha sonra bunu sınırlamak varsa, o zaman kullanım gibi bir şey daha iyidir OracleSAMPLE(N) veya TABLESAMPLEiçinde SQL Server veya PostgreSQL yerine ORDER BY yan tümcesinde rastgele fonksiyonu.
Yani, aşağıdaki veritabanı tablosuna sahip olduğumuzu varsayarsak:

Ve songtabloda aşağıdaki satırlar :
| 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 |
torpil
Oracle'da, DBMS_RANDOM.VALUEaşağıdaki örnekte gösterildiği gibi işlevi kullanmanız gerekir :
SELECT
artist||' - '||title AS song
FROM song
ORDER BY DBMS_RANDOM.VALUE
Oracle'da yukarıda belirtilen SQL sorgusunu çalıştırırken, aşağıdaki sonuç kümesini alacağız:
| 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 |
DBMS_RANDOM.VALUEORDER BY deyimi tarafından kullanılan işlev çağrısı sayesinde şarkıların rasgele sırada listelendiğine dikkat edin .
SQL Server
SQL Server'da, NEWIDaşağıdaki örnekte gösterildiği gibi işlevi kullanmanız gerekir :
SELECT
CONCAT(CONCAT(artist, ' - '), title) AS song
FROM song
ORDER BY NEWID()
Yukarıda belirtilen SQL sorgusu SQL Server'da çalıştırıldığında, aşağıdaki sonuç kümesini alacağız:
| 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) |
NEWIDORDER BY deyimi tarafından kullanılan işlev çağrısı sayesinde şarkıların rasgele sırada listelendiğine dikkat edin .
PostgreSQL
PostgreSQL'de, randomaşağıdaki örnekte gösterildiği gibi işlevi kullanmanız gerekir :
SELECT
artist||' - '||title AS song
FROM song
ORDER BY random()
PostgreSQL'de yukarıda belirtilen SQL sorgusunu çalıştırırken, aşağıdaki sonuç kümesini alacağız:
| 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 |
randomORDER BY deyimi tarafından kullanılan işlev çağrısı sayesinde şarkıların rasgele sırada listelendiğine dikkat edin .
MySQL
MySQL'de, RANDaşağıdaki örnekte gösterildiği gibi işlevi kullanmanız gerekir :
SELECT
CONCAT(CONCAT(artist, ' - '), title) AS song
FROM song
ORDER BY RAND()
MySQL'de yukarıda belirtilen SQL sorgusunu çalıştırırken, aşağıdaki sonuç kümesini alacağız:
| 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 |
RANDORDER BY deyimi tarafından kullanılan işlev çağrısı sayesinde şarkıların rasgele sırada listelendiğine dikkat edin .