logo

SQL ORDER NÁHODNE

Ak chcete, aby výsledný záznam bol objednané náhodne , mali by ste použiť nasledujúce kódy podľa niekoľkých databáz.

Tu je otázka: aká je potreba získať náhodný záznam alebo riadok z databázy?

Niekedy možno budete chcieť zobraziť náhodné informácie, ako napr články, odkazy, stránky atď. svojmu používateľovi.

Ak chcete získať náhodné riadky z niektorej z databáz, musíte použiť niektoré zmenené dotazy podľa databáz.

    Vyberte náhodný riadok pomocou MySQL:

Ak chcete vrátiť náhodný riadok s MY SQL, použite nasledujúcu syntax:

 SELECT column FROM table ORDER BY RAND () LIMIT 1; 
    Vyberte náhodný riadok pomocou Postgre SQL:
 SELECT column FROM table ORDER BY RANDOM () LIMIT 1; 
    Vyberte náhodný riadok so serverom SQL Server:
 SELECT TOP 1 column FROM table ORDER BY NEWID (); 
    Vyberte náhodný riadok s Oracle:
 SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1; 
    Vyberte náhodný riadok pomocou IBM DB2:
 SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY; 

Aby sme tento koncept pochopili prakticky, pozrime si niekoľko príkladov s použitím databázy MySQL. Uvažujme, že máme v databáze vytvorené položky tabuľky s nasledujúcimi údajmi:

čo sú selektory v css

Tabuľka: položky

ID Názov položky Množstvo_položky Item_Price Dátum nákupu
1 Mydlo 5 200 2021-07-08
2 Zubná pasta 2 80 2021-07-10
3 Pero 10 päťdesiat 2021-07-12
4 Fľaša 1 250 2021-07-13
5 Kefa 3 90 2021-07-15

Predpokladajme, že chceme získať ľubovoľný náhodný záznam z tabuľky položiek.

Dotaz napíšeme takto:

trieda java skenera
 mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1; 

Môžeme získať nasledujúce výsledky:

ID Názov položky Množstvo_položky Item_Price Dátum nákupu
3 Pero 10 dvadsať 2021-07-12

Teraz skúsme vykonať rovnaký dotaz ešte raz.

 mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1; 

Môžeme získať nasledujúce výsledky:

ID Názov položky Množstvo_položky Item_Price Dátum nákupu
5 Kefa 3 90 2021-07-15

Z vyššie uvedených výsledkov môžeme dospieť k záveru, že sme dostali rôzne záznamy ako výstup v oboch prípadoch, aj keď sme ten istý dotaz vykonali dvakrát. Funkcia RAND () vybrala náhodné záznamy v oboch prípadoch pre rovnaký dotaz z jednej tabuľky. Preto aj keď znova vykonáme rovnaký dotaz, zakaždým dostaneme iný výstup. Existuje zriedkavá možnosť získať rovnaký záznam za sebou pomocou funkcie RAND ().

Teraz predpokladajme, že chcete, aby boli všetky záznamy tabuľky načítané náhodne.

Aby sme to urobili, musíme vykonať nasledujúci dotaz:

 mysql> SELECT * FROM items ORDER BY RAND (); 

Môžeme získať nasledujúce výsledky:

ID Názov položky Množstvo_položky Item_Price Dátum nákupu
4 Fľaša 1 250 2021-07-13
5 Kefa 3 90 2021-07-15
1 Mydlo 5 200 2021-07-08
2 Zubná pasta 2 80 2021-07-10
3 Pero 10 päťdesiat 2021-07-12

Existuje tiež možnosť získať rôzne usporiadanie záznamov, ak znova spustíme funkciu RAND () na stole zamestnancov.