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

MySQL RAND() Funktion – Generer et tilfældigt tal i MySQL

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

  1. COPY med dynamisk filnavn

  2. Sådan omdøbes primær nøglebegrænsning for flere tabeller i SQL Server-databasen - SQL Server / TSQL vejledning del 64

  3. Gendannelsesapparat til nul datatab

  4. Liste over fremmednøgler og de tabeller, de refererer til i Oracle DB