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