I MySQL er RAND()
funktionen giver dig mulighed for at generere et tilfældigt tal. Specifikt returnerer funktionen en tilfældig flydende decimalværdi v i området 0 <= v < 1.0
.
Du kan også påvirke det tilfældige tal ved at angive en startværdi som et argument.
Syntaks
Syntaksen ser sådan ud:
RAND([N])
Hvor N
er en valgfri frøværdi, som du kan bruge til at påvirke resultatet.
Eksempel 1 – Ingen argumenter
Her er et grundlæggende eksempel til at demonstrere, hvad der sker, når vi ikke giver et argument.
SELECT RAND();
Resultat:
+--------------------+ | RAND() | +--------------------+ | 0.4335442291885095 | +--------------------+
Resultatet er ikke en konstant – det vil være anderledes hver gang du kører det.
Her er et eksempel på, hvad der sker, når vi kører flere RAND()
fungerer sammen.
SELECT RAND() 'Result 1', RAND() 'Result 2', RAND() 'Result 3';
Resultat:
+--------------------+---------------------+---------------------+ | Result 1 | Result 2 | Result 3 | +--------------------+---------------------+---------------------+ | 0.9413559538697414 | 0.40614711251682334 | 0.20666773170853753 | +--------------------+---------------------+---------------------+
Eksempel 2 – Brug af en frøværdi
Som nævnt kan du sende et argument ind for at bestemme frøværdien. Dette giver dig mulighed for at påvirke outputtet af funktionen.
SELECT RAND(5);
Resultat:
+---------------------+ | RAND(5) | +---------------------+ | 0.40613597483014313 | +---------------------+
I dette tilfælde vil funktionen returnere den samme værdi hver gang, hvis der er angivet en ens argumentværdi.
SELECT RAND(5) 'Result 1', RAND(5) 'Result 2', RAND(5) 'Result 3';
Resultat:
+---------------------+---------------------+---------------------+ | Result 1 | Result 2 | Result 3 | +---------------------+---------------------+---------------------+ | 0.40613597483014313 | 0.40613597483014313 | 0.40613597483014313 | +---------------------+---------------------+---------------------+
Eksempel 3 – Brug af RAND() som en del af et udtryk
Du kan bruge RAND()
fungere som en del af et udtryk.
SELECT RAND()*10;
Resultat:
+-------------------+ | RAND()*10 | +-------------------+ | 8.148973517258627 | +-------------------+
Eksempel 4 – Returnering af et tilfældigt heltal mellem to tal
Du kan kombinere RAND()
funktion med FLOOR()
funktion til at returnere et tilfældigt heltal mellem to tal.
Sådan genererer du et heltal mellem 5 og 10 (inklusive).
SELECT FLOOR(RAND()*(10-5+1)+5);
Resultat:
+--------------------------+ | FLOOR(RAND()*(10-5+1)+5) | +--------------------------+ | 7 | +--------------------------+
Lad os køre den samme kode flere gange for at se de forskellige resultater.
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';
Resultat:
+----------+----------+----------+ | Result 1 | Result 2 | Result 3 | +----------+----------+----------+ | 7 | 9 | 6 | +----------+----------+----------+