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

前言:

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通用二进制安装

--------------------------------------分割线 --------------------------------------

mysql随机不连续数据_用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串...相关推荐

  1. mysql 随机选择数据_从MySQL随机选取数据

    从MySQL随机选取数据最简单的办法就是使用"ORDER BY RAND()"; 方案一: SELECT * FROM `table` ORDER BY RAND() LIMIT  ...

  2. mysql binlog 大数据_后起之秀 | MySQL Binlog增量同步工具go-mysql-transfer实现详解

    一. 概述 工作需要研究了下阿里开源的MySQL Binlog增量订阅消费组件canal,其功能强大.运行稳定,但是有些方面不是太符合需求,主要有如下三点: 需要自己编写客户端来消费canal解析到的 ...

  3. mysql 禁止插入重复数据_防止MySQL重复插入数据的三种方法

    新建表格 CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 C ...

  4. mysql schema 保存数据_在MySQL中,所有触发器的定义都保存在information_schema数据库下的()表中。_学小易找答案...

    [单选题]如何将英制 的零件转为公制的零件 ( ). [判断题]连续选择边线创建倒角时,不能单独修改某一边线的倒角大小 [判断题]创建筋特征时截面必须是闭和的 [填空题]Hibernate 的会话接口 ...

  5. mysql是什么数据_了解MySQL数据页吗?说说什么是页分裂吧!

    1简单回顾 回顾一下之前和大家分享的知识点 看了前面的文章,想必你肯定了解了什么是Buffer Pool.LRU-List.Free-List.Flush-List,你也知道了当MySQL增删改查时, ...

  6. mysql怎么打印数据_从mysql打印数据

    在一个类似于kiosk的应用程序中,我试图以设置的间隔(我的情况是60秒)打印mysql数据库中插入的最后60秒记录. 使用下面的代码,是否有可能由于ajax刷新延迟或其他原因而忽略打印记录? 如果是 ...

  7. mysql存储过程灌数据_【mysql实战】存储过程灌入一百万数据

    两张表字段完全相同,一张 InnoDB,一张 MyISAM. CREATE TABLE `user_sys` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user ...

  8. mysql 查找相似数据_数据库存储引擎大揭秘,不看不知道这里面的骚操作可真多!...

    吊打各种树这篇文章 带大家学习一遍数据结构中的各种树,对数据结构还不够熟悉的同学,那篇文章可以作为基础入门,我画了很多图理解起来不困难,建议回头先学习下那篇文章,更容易理解本文要讲的内容. 文章里有提 ...

  9. mysql错误修改数据_使用正则表达式快速修改mysql中错误的varchar类型数据

    昨天早上发现日志中有错误信息:Integer到String类型转换异常. 由于程序问题,导致数据库中的varchar列存入的json字符串不符合要求,这些json字符串在反序列化成Map之后就会报错. ...

最新文章

  1. 自己动手设计RESTful API
  2. 春节充电 | 送你10本机器学习和数据科学必读书(附PDF下载)
  3. echarts图形报表缓存问题(option数据缓存)
  4. linux stat函数讲解
  5. IDEA HTTP状态 404 - 未找到 请求的资源[/]不可用
  6. 你需要培养科研必备的10项能力
  7. ios 重复引用 静态库_iOS-如果静态库(.a)包含重复的目标文件(.o),会发生什么?
  8. python boxplot orient_Python 可视化 | Seaborn5 分钟入门 (三)——boxplot 和 violinplot
  9. python解析sql文件_如何从Python中解析sql文件?
  10. k8s核心技术-Pod(健康检查)_健康检查的方式_以及pod崩溃后如何处理---K8S_Google工作笔记0023
  11. pickle.dump()和pickle.load()进行文件操作
  12. 【渝粤教育】国家开放大学2018年秋季 1302T护理科研方法 参考试题
  13. cocostudio学习(UIScrollView控件内部子控件的可视化问题)
  14. 从人工智能到人机智能
  15. 元宇宙:从现实到虚无祛魅的产物|广州华锐互动
  16. java 周几_java实现根据日期判断周几
  17. 存储单元、存储字、字、字节
  18. react18.0.0+ts路由配置
  19. 用计算机控制单片机的程序编写,单片机程序编写步骤
  20. ppt学习06——排版

热门文章

  1. 利用ArcGIS做一张“三调“土地利用现状图(附三调符号库下载)
  2. HNU数据结构与算法szh
  3. python效率计算-提高python中重心坐标计算的效率
  4. Mac 查看隐藏文件(夹)
  5. 学海领航c语言答案,学海领航语文单元测试卷答案.doc
  6. 常见 Web 攻击(前端篇)
  7. 反洗钱检验java_从Drools规则引擎到风控反洗钱系统V0.2.3.pdf
  8. 华为9306 如何注册激活license 文件
  9. 用Python处理一些简单的数学问题的方法
  10. oracle创建dblink语法