Wie füge ich einen zufälligen Wert in mysql ein?

7

Es sieht so aus, als ob RAND das ist, was ich brauche, aber ich habe ein bisschen Probleme damit zu verstehen, wie es funktioniert.

Ich muss eine Zufallszahl zwischen 60 und 120 in ein paar tausend Zeilen einfügen. Tabellenname ist: Listing und der Spaltenname lautet: hits

Könnten Sie bitte helfen?

    
Andi 20.08.2011, 03:12
quelle

4 Antworten

21

Um eine zufällige ganze Zahl zwischen 60 und 120 zu erhalten, müssen Sie ein wenig arithmetisch mit den Ergebnissen von RAND() arbeiten, was nur Gleitkommawerte erzeugt:

%Vor%

Also, was ist hier los?

RAND() erzeugt einen Wert wie 0.847269199 . Wir multiplizieren das mit 61, was uns den Wert 51.83615194 gibt. Wir fügen 60 hinzu, da dies Ihr gewünschter Offset über Null ist (111.83615194). FLOOR() rundet das Ganze auf die nächste ganze Zahl ab. Schließlich hast du 111.

Um dies über einige tausend vorhandene Zeilen zu tun:

%Vor%

Weitere Informationen finden Sie in den MySQL-Dokumenten zu RAND() .

Hinweis Ich denke, ich habe das Rechnen richtig, aber wenn Sie Werte von 59 oder 121 außerhalb des erwarteten Bereichs erhalten, ändern Sie +60 entsprechend nach oben oder unten.

    
Michael Berkowski 20.08.2011, 03:17
quelle
3

So erhalten Sie die Zufallszahl in einem Bereich. Das folgende Bit kann ein wenig mehrdeutig ein bisschen, weil die 61 ist eigentlich Ihr maximaler Wert (120) minus Ihrem minimalen Wert (60) + 1, um inklusive Ergebnisse zu erhalten.

%Vor%

Ссылка

    
Bueller 20.08.2011 03:24
quelle
1
%Vor%

um eine Zahl zwischen 60 und 120 (einschließlich 60 und 120) zu erhalten;

RAND() erstellt eine Zahl im Intervall [0; 1) (also ohne 1). Also ergibt 61 * RAND () eine Zahl in [0, 61). 61 * RAND () + 60 ist in [60; 121) Durch Abrundung stellen Sie sicher, dass Ihre Nummer tatsächlich in [60; 120] ist.

    
emboss 20.08.2011 03:25
quelle
0

Als ich mit dieser Art von Problem konfrontiert wurde, habe ich versucht, Handbuch, aber ich habe über 500 Zeilen, Ich habe logischerweise einen Trick mitgebracht, der mir geholfen hat, denn wenn Sie RAND auf Abfrage ausführen, Sie könnten einen Fehlerbericht aufgrund von Duplicates oder PRIMARY KEY erhalten, insbesondere wenn diese Spalte ein PRIMARY KEY und AUTO INCREMENT ist.

  1. Erstens - Ich habe die betreffende Spalte umbenannt, z. B. meine ID - & gt; IDS
  2. Zweitens - Ich habe eine andere Spalte erstellt und ID
  3. aufgerufen
  4. Drittens - Ich ran diesen Code
  

UPDATE-Verlauf SET-ID = FLOOR (217 + RAND () * 2161)

Dies hat automatisch eine Zufallszahl erzeugt, später löschte ich die umbenannte IDS colume

Kredit von Michael. Danke

    
ExploreTech 06.01.2017 05:28
quelle

Tags und Links