sql >> Databáze >  >> RDS >> Mysql

Funkce MySQL RAND() – Generování náhodného čísla v MySQL

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 |
+----------+----------+----------+

  1. Zkontrolujte, zda jsou dva výběry ekvivalentní

  2. Oracle DBA dotazy v reálném čase

  3. PostgreSQL Load Balancing pomocí HAProxy &Keepalived

  4. Výkon SQL Server 2005 Query