sql >> Databasteknik >  >> RDS >> Mysql

MySQL RAND() Funktion – Generera ett slumptal i MySQL

I MySQL, RAND() funktionen låter dig generera ett slumptal. Specifikt returnerar funktionen ett slumpmässigt flyttalsvärde v i intervallet 0 <= v < 1.0 .

Du kan också påverka slumptalet genom att ange ett startvärde som ett argument.

Syntax

Syntaxen ser ut så här:

RAND([N])

Där N är ett valfritt frövärde som du kan använda för att påverka resultatet.

Exempel 1 – Inga argument

Här är ett grundläggande exempel för att visa vad som händer när vi inte ger ett argument.

SELECT RAND();

Resultat:

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

Resultatet är inte en konstant – det kommer att vara olika varje gång du kör det.

Här är ett exempel på vad som händer när vi kör flera RAND() fungerar tillsammans.

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

Resultat:

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

Exempel 2 – Använda ett frövärde

Som nämnts kan du skicka in ett argument för att bestämma frövärdet. Detta gör att du kan påverka resultatet av funktionen.

SELECT RAND(5);

Resultat:

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

I det här fallet kommer funktionen att returnera samma värde varje gång om ett lika stort argumentvärde anges.

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

Exempel 3 – Användning av RAND() som en del av ett uttryck

Du kan använda RAND() fungera som en del av ett uttryck.

SELECT RAND()*10;

Resultat:

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

Exempel 4 – Returnera ett slumpmässigt heltal mellan två tal

Du kan kombinera RAND() funktion med FLOOR() funktion för att returnera ett slumpmässigt heltal mellan två tal.

Så här genererar du ett heltal mellan 5 och 10 (inklusive).

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

Resultat:

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

Låt oss köra samma kod flera gånger för att se de olika resultaten.

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. Ta värde från FältA, skicka till db-funktion, returnera värde till FältB

  2. Rekursion i Oracle

  3. MySQL:s alternativ till T-SQL:s MED BAND

  4. SQL Server 2016 på Linux