Mysql は固定桁数の乱数を生成します

高洛峰
リリース: 2016-12-02 14:21:18
オリジナル
1648 人が閲覧しました

プロジェクトでは、8 桁、5 桁などの固定桁数の乱数を動的かつランダムに生成する必要があります。

以前見た書き方はこんな感じです

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

この書き方はあまり正確ではありません The Rand() の可能性があります。関数は 0 ~ 1 (無限に近い) のランダム関数を受け取ります

ある乱数を取り出した場合、それが 0.05321

このように変換された結果は 5321 となり、4 桁しかありません。

値を取得して桁数が間違っていることがわかったら、その桁を埋めるだけで関数でラップできれば完璧です。

以下は私が変更した関数ですが、生成された関数は20桁を超えることができないという欠点があります。もちろん、変更することもできます。

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; IF(CHAR_LENGTH (sTemp)
SET sTempCounts = counts - CHAR_LENGTH(sTemp);
SET sTemp = CONCAT(温度, RIGHT(CONCAT (POW(10,sTempCounts),),sTempCounts));
END IF;

RETURN sTemp;
END$$

DELIMITER ;

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!