MySQL 存储过程插入随即号码和多位字符串

首先说一下@x,它表示是一个变量,这样向table插入时,不会把x当作是一个字符,所以我们在做随机数时,应该将x声明为一个变量,可以经行赋值操作。`@SET X = ‘’;
随机数要用到 rand()函数:

SET @x = rand() 这就给@x变量赋值了一个随机数(0<@x<1)

rand()函数只能随机产生一个大于0,小于1的浮点数,所以我们给rand()乘以一个数,再对它进行取整操作就可以得到一个多位的字符串了 例如:

SET @y = FLOOR( RAND()*10000+1 );  #就可以得到一个5位的一个字符串。

生成11位电话号码的代码如下:

DELIMITER $$
CREATE PROCEDURE aa()
BEGIN
SET @x = 0;
SET @y = 1;
SET @z = '35789';
SET @i = 0;
SET @k = 0;
SET @d = 0;

#产生随机字符串
SET @str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
SET @str1= '';


ins: LOOP
SET @x = @x + 1;
IF @x = 4 THEN   # 循环
LEAVE ins;
END IF;
SET @d = FLOOR(RAND()*5)+1;  
SET @k = SUBSTRING(@z,@d,@d-1);  
SET @i = FLOOR(RAND()*1000000000);
SET @y = concat(1,@d,@i);
SELECT @str1;
SELECT @y;

#产生随机4位字符串
SET @str1 = concat( SUBSTRING(@str,FLOOR(RAND()*64)+1,1),SUBSTRING(@str,FLOOR(RAND()*64)+1,1), SUBSTRING(@str,FLOOR(RAND()*64)+1,1), SUBSTRING(@str,FLOOR(RAND()*64)+1,1)  );
SELECT @str1;

END LOOP ins;
END;
$$ 
DELIMITER ;

将@x的值改成100001,既可以向table插入100000条随机数据。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值