Zufällige Zahlen in MySQL generieren und speichern

Ich hatte heute das Problem, dass ich für ein Demo Projekt tausende Zahlen brauchte um meine Datenbank zu befüllen. Sicherlich kann man das auch mit PHP & Co. machen, aber es geht tatsächlich auch direkt in SQL.

Ich hatte drei Anwendungsfälle:

  1. Ich brauche ganze Zahlen (integer)
  2. Ich brauche Geldbeträge (float)
  3. Ich möchte einen Bereich (min, max) angeben können, um die Demo Daten glaubhafter zu machen.

Der SQL Befehl sieht wie folgt aus:

SELECT FLOOR( RAND() * (maximum - minimum) + minimum) as randomValue;

Mit RAND() kann man eine Zahl zw. 0 und 1 generieren und mit etwas Math-Magic kann man dann auch noch einen Bereich festlegen. Und mittels FLOOR() wird draus eine natürliche Zahl.

Beispiel für eine Zahl zw. 20 und 100:

SELECT FLOOR( RAND() * (100 - 20) + 20) as randomValue;
+-------------+
| randomValue |
+-------------+
| 50          |
+-------------+
1 row in set (0.00 sec)

Beispiel für einen Geldbetrag zwischen 0,50 und 100,00: (wir generieren einen Cent Betrag und rechnen anschließend durch 100)

SELECT FLOOR( RAND() * (10000 - 50) + 50) / 100 as randomValue;
+-------------+
| randomValue |
+-------------+
| 45,65       |
+-------------+
1 row in set (0.00 sec)

Veröffentlicht von Hans-Helge

Als studierter Informatiker arbeitet Hans-Helge gerne als freiberuflicher WordPress Entwickler und betreut neben eigenen Projekten viele andere Webseiten u.A. im ehrenamtlichen Bereich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.