900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串

用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串

时间:2019-10-12 13:35:55

相关推荐

用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串

数据库|mysql教程

MySQL随机数,用MySQL里的Rand()生成 不连续重

数据库-mysql教程

经典老虎机游戏源码,制作Ubuntu源码包,配tomcat服务器,word爬虫软件,php查看结构类型变量,seo业界lzw

用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串

电话号码抽奖网站源码,ubuntu添加中文语言,tomcat用不了怎么办,仓鼠吧和爬虫,如何将php数组倒序,招聘seo推广lzw

微信预约 源码,vscode怎么设置默认字体,Ubuntu下载ss,tomcat多种启动方式,猿辅导爬虫,php中空格代码,张家界专业seo优化价位lzw

前言:

RAND函数,返回在范围0到1.0内的随机浮点值。如果一个整数参数N被指定,它被用作种子值。

一,朋友问题描述如下:

(1),有一个用户表,有id,用户的真实名字,年龄。

通过一段存储过程来实现向表里插入100数据,其中年龄随机

姓名

姓氏:’赵钱孙李周吴郑王’;,随机取出一个

名字:’一段文字字符串’,随机的取出一个字或者两个字

要求:随机的名字不能出现连续重复。

(2),然后我写出的代码如下:

— 创建用户表,在project里

create table user1 (

id int not null primary key auto_increment,

name varchar(3) not null,

age tinyint not null

) charset utf8;

— 创建存储过程

delimiter $$

create procedure pro3(num int)

begin

declare fname char(1);

declare name1 char(1);

declare name2 char(1);

declare fullname varchar(3);

declare age int;

declare i int default 1;

while i <=num do

set fname = substring(‘赵钱孙李周吴郑王’,floor(1+8*rand()),1); — 姓

set name1 = substring(‘一二三四五六七八九十甲乙丙丁’,floor(1+14*rand()),1); — 抽一个字

set name2 = substring(‘一二三四五六七八九十甲乙丙丁’,floor(1+14*rand()),1); — 抽一个字

if round(rand())=0 then — 创造一个局部变量fullname代表全名,随机确定是两个字还是三个字

set fullname = concat(fname,name1);

end if;

if round(rand())=1 then

set fullname = concat(fname,name1,name2);

end if;

set age = floor(20+31*rand()); — 年龄为20-50的随机

insert into user1 values(null,fullname,age); — 插入数据

set i = i + 1;

end while;

end

$$

delimiter ;

(3),执行结果

call pro3(100); — 执行过程

出现的结果出乎意料,,出现了很多连续一样的姓名,执行结果如下:

mysql> select * from user1;

+—–+——–+—–+

| id | name | age |

+—–+——–+—–+

| 1 | 赵三| 28 |

| 2 | 孙一四| 50 |

| 3 | 郑丁九| 42 |

| 4 | 王八| 47 |

| 5 | 钱六| 48 |

| 6 | 李五| 26 |

| 7 | 李五| 41 |

| 8 | 郑二三| 22 |

| 9 | 孙七六| 24 |

| 10 | 孙三| 21 |

| 11 | 钱甲二 | 26 |

| 12 | 孙丙| 42 |

| 13 | 孙丙| 37 |

| 14 | 赵六丁| 24 |

| 15 | 赵六丁| 40 |

| 16 | 王十七| 28 |

| 17 | 孙九| 22 |

| 18 | 李二| 23 |

| 19 | 李十| 23 |

| 20 | 赵丁甲| 50 |

| 21 | 钱一九 | 49 |

| 22 | 钱一九 | 22 |

| 23 | 钱一九 | 30 |

| 24 | 钱一九 | 30 |

| 25 | 孙五| 46 |

| 26 | 吴三十| 39 |

| 27 | 赵七二| 50 |

| 28 | 赵七二| 29 |

| 29 | 孙甲九| 20 |

| 30 | 郑乙十 | 35 |

| 31 | 周一| 50 |

| 32 | 吴甲七| 50 |

| 33 | 李丁十 | 47 |

| 34 | 李丁十 | 29 |

| 35 | 李丁十 | 40 |

| 36 | 孙五| 47 |

| 37 | 赵九丙 | 41 |

| 38 | 郑三八| 43 |

| 39 | 钱七| 37 |

| 40 | 钱二一 | 24 |

| 41 | 王七五| 45 |

| 42 | 李十四| 24 |

| 43 | 李十四| 28 |

| 44 | 孙甲甲| 49 |

| 45 | 郑五| 38 |

| 46 | 赵甲| 27 |

| 47 | 王三| 39 |

| 48 | 王三| 26 |

| 49 | 王三| 22 |

| 50 | 王三| 30 |

| 51 | 钱一九 | 44 |

| 52 | 赵四| 30 |

| 53 | 王十九| 50 |

| 54 | 王十九| 34 |

| 55 | 王十九| 40 |

| 56 | 周丙甲| 20 |

| 57 | 孙十| 47 |

| 58 | 王丙| 32 |

| 59 | 王六| 43 |

| 60 | 吴三甲| 29 |

| 61 | 王乙| 26 |

| 62 | 赵甲| 46 |

| 63 | 赵甲| 23 |

| 64 | 王八丙| 25 |

| 65 | 王八丙| 30 |

| 66 | 周乙六| 50 |

| 67 | 吴五八| 21 |

| 68 | 孙五| 42 |

| 69 | 赵丙六| 48 |

| 70 | 周三| 48 |

| 71 | 周三| 47 |

| 72 | 李乙| 46 |

| 73 | 李乙| 40 |

| 74 | 吴十五| 45 |

| 75 | 赵十五| 36 |

| 76 | 赵十五| 25 |

| 77 | 李十| 35 |

| 78 | 李甲| 38 |

| 79 | 周三一| 33 |

| 80 | 周三一| 48 |

| 81 | 钱六六| 33 |

| 82 | 钱六六| 49 |

| 83 | 孙十六| 36 |

| 84 | 王二甲| 48 |

| 85 | 王二甲| 39 |

| 86 | 王乙| 30 |

| 87 | 郑三| 21 |

| 88 | 赵二五| 29 |

| 89 | 周丙丙| 43 |

| 90 | 钱七乙| 35 |

| 91 | 钱七乙| 47 |

| 92 | 钱七乙| 38 |

| 93 | 孙乙| 29 |

| 94 | 周乙| 32 |

| 95 | 郑乙十 | 46 |

| 96 | 郑乙十 | 37 |

| 97 | 吴八| 46 |

| 98 | 吴十八| 42 |

| 99 | 王乙四| 30 |

| 100 | 吴九十| 50 |

————————————–分割线 ————————————–

Ubuntu 14.04下安装MySQL

《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF

Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

Ubuntu 14.04下搭建MySQL主从服务器

Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb

MySQL-5.5.38通用二进制安装

————————————–分割线 ————————————–

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。