Pokud chcete, aby výsledný záznam byl objednané náhodně , měli byste použít následující kódy podle několika databází.
Zde je otázka: jaká je potřeba načíst náhodný záznam nebo řádek z databáze?
Někdy můžete chtít zobrazit náhodné informace jako články, odkazy, stránky atd. svému uživateli.
Pokud chcete načíst náhodné řádky z některé z databází, musíte použít některé změněné dotazy podle databází.
Pokud chcete vrátit náhodný řádek s MY SQL, použijte následující syntaxi:
SELECT column FROM table ORDER BY RAND () LIMIT 1;
SELECT column FROM table ORDER BY RANDOM () LIMIT 1;
SELECT TOP 1 column FROM table ORDER BY NEWID ();
SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1;
SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY;
Abychom tomuto konceptu porozuměli prakticky, podívejme se na několik příkladů s použitím databáze MySQL. Uvažujme, že máme v databázi vytvořené položky tabulky s následujícími údaji:
Tabulka: položky
ID | Název položky | Položka_množství | Cena položky | Datum nákupu |
---|---|---|---|---|
1 | Mýdlo | 5 | 200 2021-07-08 | |
2 | Zubní pasta | 2 | 80 | 2021-07-10 |
3 | Pero | 10 | padesáti | 2021-07-12 |
4 | Láhev | 1 | 250 | 2021-07-13 |
5 | Štětec | 3 | 90 | 2021-07-15 |
Předpokládejme, že chceme získat libovolný náhodný záznam z tabulky položek.
Dotaz napíšeme následovně:
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Můžeme získat následující výsledky:
ID | Název položky | Položka_množství | Cena položky | Datum nákupu |
---|---|---|---|---|
3 | Pero | 10 | dvacet | 2021-07-12 |
Nyní zkusme provést stejný dotaz ještě jednou.
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Můžeme získat následující výsledky:
ID | Název položky | Položka_množství | Cena položky | Datum nákupu |
---|---|---|---|---|
5 | Štětec | 3 | 90 | 2021-07-15 |
Z výše uvedených výsledků můžeme usoudit, že v obou případech dostáváme jako výstup různé záznamy, i když jsme stejný dotaz provedli dvakrát. Funkce RAND () vybrala náhodné záznamy pro stejný dotaz z jedné tabulky. Proto i když provedeme stejný dotaz znovu, pokaždé dostaneme jiný výstup. Existuje vzácná možnost získání stejného záznamu po sobě pomocí funkce RAND ().
Nyní předpokládejme, že chcete, aby byly všechny záznamy v tabulce načteny náhodně.
K tomu musíme provést následující dotaz:
mysql> SELECT * FROM items ORDER BY RAND ();
Můžeme získat následující výsledky:
ID | Název položky | Položka_množství | Cena položky | Datum nákupu |
---|---|---|---|---|
4 | Láhev | 1 | 250 | 2021-07-13 |
5 | Štětec | 3 | 90 | 2021-07-15 |
1 | Mýdlo | 5 | 200 | 2021-07-08 |
2 | Zubní pasta | 2 | 80 | 2021-07-10 |
3 | Pero | 10 | padesáti | 2021-07-12 |
Existuje také možnost získat různá uspořádání záznamů, pokud znovu spustíme funkci RAND () na stole zaměstnanců.