Heim  >  Artikel  >  Datenbank  >  MySQL generiert Zufallszahlen mit einer festen Anzahl von Ziffern

MySQL generiert Zufallszahlen mit einer festen Anzahl von Ziffern

高洛峰
高洛峰Original
2016-12-02 14:21:181670Durchsuche

Das Projekt muss dynamisch und zufällig einige Zufallszahlen mit einer festen Anzahl von Ziffern generieren, z. B. 8 Ziffern, 5 Ziffern usw.

Die Art und Weise, wie ich es zuvor geschrieben gesehen habe, ist so

ROUND(ROUND(RAND(),5)*100000)

Diese Schreibweise ist nicht sehr genau, In diesem Fall ist die Rand()-Funktion eine Zufallsfunktion, die 0 ~ 1 annimmt (unendlich nahe)

Wenn eine bestimmte Zufallszahl herausgenommen wird, beträgt sie 0,05321

, dann ist die umgewandelte Zahl 5321, die nur 4 Ziffern hat.

Es wäre perfekt, wenn Sie es mit einer Funktion abschließen könnten. Wenn Sie nach der Erfassung des Werts feststellen, dass die Anzahl der Ziffern falsch ist, können Sie sie einfach eingeben.

Das Folgende ist eine Funktion, die ich geändert habe. Der Nachteil besteht jedoch darin, dass die Anzahl der generierten Funktionen 20 Stellen nicht überschreiten darf. Natürlich können Sie es ändern.

DELIMITER $$

USE `prvecard`$$

DROP FUNCTION IF EXISTS `getRand`$$

CREATE DEFINER=`PECARD`@` %` FUNCTION `getRand`(counts INTEGER) RETURNS VARCHAR(20) CHARSET utf8
BEGIN
​​​​DECLARE sTemp VARCHAR(20);
DECLARE sTempCounts INTEGER;
SET sTemp = CONCAT( RO UND (ROUND( RAND(),counts)*(POW(10,counts)), );
SET sTemp = CONCAT(sTemp, RIGHT(CONCAT(POW(10,sTempCounts),),sTempCounts));
END IF;

RETURN sTemp;
END$$

DELIMITER ;

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn