sql >> Database >  >> RDS >> Mysql

MySQL RAND() Functie – Genereer een willekeurig getal in MySQL

In MySQL is de RAND() functie stelt u in staat om een ​​willekeurig getal te genereren. In het bijzonder retourneert de functie een willekeurige drijvende-kommawaarde v in het bereik 0 <= v < 1.0 .

Je kunt het willekeurige getal ook beïnvloeden door een startwaarde als argument op te geven.

Syntaxis

De syntaxis gaat als volgt:

RAND([N])

Waar N is een optionele startwaarde die u kunt gebruiken om het resultaat te beïnvloeden.

Voorbeeld 1 – Geen argumenten

Hier is een eenvoudig voorbeeld om te laten zien wat er gebeurt als we geen argument geven.

SELECT RAND();

Resultaat:

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

Het resultaat is geen constante - het zal elke keer dat u het uitvoert anders zijn.

Hier is een voorbeeld van wat er gebeurt als we meerdere RAND() . uitvoeren functies samen.

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

Resultaat:

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

Voorbeeld 2 – Een startwaarde gebruiken

Zoals vermeld, kunt u een argument doorgeven om de seed-waarde te bepalen. Hiermee kunt u de uitvoer van de functie beïnvloeden.

SELECT RAND(5);

Resultaat:

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

In dit geval retourneert de functie elke keer dezelfde waarde als een gelijke argumentwaarde wordt opgegeven.

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

Resultaat:

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

Voorbeeld 3 – RAND() gebruiken als onderdeel van een expressie

U kunt de RAND() . gebruiken functioneren als onderdeel van een uitdrukking.

SELECT RAND()*10;

Resultaat:

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

Voorbeeld 4 – Een willekeurig geheel getal tussen twee getallen teruggeven

U kunt de RAND() . combineren functie met de FLOOR() functie om een ​​willekeurig geheel getal tussen twee getallen te retourneren.

Hier leest u hoe u een geheel getal tussen 5 en 10 (inclusief) kunt genereren.

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

Resultaat:

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

Laten we dezelfde code meerdere keren uitvoeren om de wisselende resultaten te zien.

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

Resultaat:

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

  1. Bevriezen beheren in PostgreSQL

  2. Waarom zou een IN-voorwaarde langzamer zijn dan =in sql?

  3. Hoe last_insert_rowid() werkt in SQLite

  4. PDO MySQL:PDO::ATTR_EMULATE_PREPARES gebruiken of niet?