V MySQL je to RAND()
funkce umožňuje generovat náhodné číslo. Konkrétně funkce vrací náhodnou hodnotu s plovoucí desetinnou čárkou v v rozsahu 0 <= v < 1.0
.
Náhodné číslo můžete také ovlivnit poskytnutím počáteční hodnoty jako argumentu.
Syntaxe
Syntaxe vypadá takto:
RAND([N])
Kde N
je volitelná počáteční hodnota, kterou můžete použít k ovlivnění výsledku.
Příklad 1 – Žádné argumenty
Zde je základní příklad, který demonstruje, co se stane, když neuvedeme argument.
SELECT RAND();
Výsledek:
+--------------------+ | RAND() | +--------------------+ | 0.4335442291885095 | +--------------------+
Výsledek není konstantní – při každém spuštění se bude lišit.
Zde je příklad toho, co se stane, když spustíme více RAND()
fungují společně.
SELECT RAND() 'Result 1', RAND() 'Result 2', RAND() 'Result 3';
Výsledek:
+--------------------+---------------------+---------------------+ | Result 1 | Result 2 | Result 3 | +--------------------+---------------------+---------------------+ | 0.9413559538697414 | 0.40614711251682334 | 0.20666773170853753 | +--------------------+---------------------+---------------------+
Příklad 2 – Použití počáteční hodnoty
Jak již bylo zmíněno, můžete předat argument k určení počáteční hodnoty. To vám umožní ovlivnit výstup funkce.
SELECT RAND(5);
Výsledek:
+---------------------+ | RAND(5) | +---------------------+ | 0.40613597483014313 | +---------------------+
V tomto případě funkce vrátí stejnou hodnotu pokaždé, když je zadána stejná hodnota argumentu.
SELECT RAND(5) 'Result 1', RAND(5) 'Result 2', RAND(5) 'Result 3';
Výsledek:
+---------------------+---------------------+---------------------+ | Result 1 | Result 2 | Result 3 | +---------------------+---------------------+---------------------+ | 0.40613597483014313 | 0.40613597483014313 | 0.40613597483014313 | +---------------------+---------------------+---------------------+
Příklad 3 – Použití RAND() jako součásti výrazu
Můžete použít RAND()
fungovat jako součást výrazu.
SELECT RAND()*10;
Výsledek:
+-------------------+ | RAND()*10 | +-------------------+ | 8.148973517258627 | +-------------------+
Příklad 4 – Vrácení náhodného celého čísla mezi dvěma čísly
Můžete kombinovat RAND()
pomocí funkce FLOOR()
funkce vrátí náhodné celé číslo mezi dvěma čísly.
Zde je návod, jak vygenerovat celé číslo mezi 5 a 10 (včetně).
SELECT FLOOR(RAND()*(10-5+1)+5);
Výsledek:
+--------------------------+ | FLOOR(RAND()*(10-5+1)+5) | +--------------------------+ | 7 | +--------------------------+
Spusťte stejný kód několikrát, abyste viděli různé výsledky.
SELECT FLOOR(RAND()*(10-5+1)+5) 'Result 1', FLOOR(RAND()*(10-5+1)+5) 'Result 2', FLOOR(RAND()*(10-5+1)+5) 'Result 3';
Výsledek:
+----------+----------+----------+ | Result 1 | Result 2 | Result 3 | +----------+----------+----------+ | 7 | 9 | 6 | +----------+----------+----------+