Mysql
 sql >> Database >  >> RDS >> Mysql

Funzione MySQL RAND() – Genera un numero casuale in MySQL

In MySQL, il RAND() La funzione consente di generare un numero casuale. In particolare, la funzione restituisce un valore a virgola mobile casuale v nell'intervallo 0 <= v < 1.0 .

Puoi anche influenzare il numero casuale fornendo un valore seme come argomento.

Sintassi

La sintassi è questa:

RAND([N])

Dove N è un valore seme opzionale che puoi utilizzare per influenzare il risultato.

Esempio 1 – Nessun argomento

Ecco un esempio di base per dimostrare cosa succede quando non forniamo un argomento.

SELECT RAND();

Risultato:

+--------------------+
| RAND()             |
+--------------------+
| 0.4335442291885095 |
+--------------------+

Il risultato non è una costante:sarà diverso ogni volta che lo esegui.

Ecco un esempio di cosa succede quando eseguiamo più RAND() funzionano insieme.

SELECT 
  RAND() 'Result 1',
  RAND() 'Result 2',
  RAND() 'Result 3';

Risultato:

+--------------------+---------------------+---------------------+
| Result 1           | Result 2            | Result 3            |
+--------------------+---------------------+---------------------+
| 0.9413559538697414 | 0.40614711251682334 | 0.20666773170853753 |
+--------------------+---------------------+---------------------+

Esempio 2:utilizzo di un valore seme

Come accennato, puoi passare un argomento per determinare il valore del seme. Ciò consente di influenzare l'output della funzione.

SELECT RAND(5);

Risultato:

+---------------------+
| RAND(5)             |
+---------------------+
| 0.40613597483014313 |
+---------------------+

In questo caso, la funzione restituirà lo stesso valore ogni volta se viene fornito un valore di argomento uguale.

SELECT 
  RAND(5) 'Result 1',
  RAND(5) 'Result 2',
  RAND(5) 'Result 3';

Risultato:

+---------------------+---------------------+---------------------+
| Result 1            | Result 2            | Result 3            |
+---------------------+---------------------+---------------------+
| 0.40613597483014313 | 0.40613597483014313 | 0.40613597483014313 |
+---------------------+---------------------+---------------------+

Esempio 3:utilizzo di RAND() come parte di un'espressione

Puoi usare il RAND() funzione come parte di un'espressione.

SELECT RAND()*10;

Risultato:

+-------------------+
| RAND()*10         |
+-------------------+
| 8.148973517258627 |
+-------------------+

Esempio 4 – Restituzione di un numero intero casuale tra due numeri

Puoi combinare il RAND() funzione con il FLOOR() funzione per restituire un numero intero casuale tra due numeri.

Ecco come generare un numero intero compreso tra 5 e 10 (incluso).

SELECT FLOOR(RAND()*(10-5+1)+5);

Risultato:

+--------------------------+
| FLOOR(RAND()*(10-5+1)+5) |
+--------------------------+
|                        7 |
+--------------------------+

Eseguiamo lo stesso codice più volte per vedere i diversi risultati.

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';

Risultato:

+----------+----------+----------+
| Result 1 | Result 2 | Result 3 |
+----------+----------+----------+
|        7 |        9 |        6 |
+----------+----------+----------+