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 TABLESAMPLE
içinde SQL Server veya PostgreSQL yerine ORDER BY yan tümcesinde rastgele fonksiyonu.
Yani, aşağıdaki veritabanı tablosuna sahip olduğumuzu varsayarsak:
Ve song
tabloda 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.VALUE
aş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.VALUE
ORDER 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, NEWID
aş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) |
NEWID
ORDER 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, random
aş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 |
random
ORDER 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, RAND
aş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 |
RAND
ORDER BY deyimi tarafından kullanılan işlev çağrısı sayesinde şarkıların rasgele sırada listelendiğine dikkat edin .