前几天在开发一个系统,需要用到随机字符串,但是mysql的库函数有没有直接提供,就简单的利用现有的函数东拼西凑出随机字符串来.下面简单的说下实现当时.

1.简单粗暴.

select ..., substring(MD5(RAND()),floor(RAND()*26)+1,6) as rand_str .....

上诉示例产生的是:6位长度的随机字符串.

函数解释:

rand() :产生 0-1之间的小数,简称种子.rand()*25 产生的数 在 0- 25 之间,不包括25

floor(val): 生成最近接val的最大整数

md5() :对字符串进行Md5加密(单向),生成的字符串长度是32位。

substring(str,pos,len):截取字符串,第一个参数:待截取的字符串,第二个参数:开始的位置(这里有些不同,下标开始位置为1,可以试试下),第三个参数:截取的长度.

2.将方式1进行包装一下:自定义函数

drop function if exists rand_str;

#第一句: 如果存在重名函数,就将其删除

create function rand_str(strlen smallint) returns varchar(255)

#第二句: 定义一个函数,名称'rand_str' ,参数名 strlen 参数类型 smallint , 返回值类型 varchar(255) ,特别 注意下 这里的 是returns 下面的是 return

#BEGIN

#相当于左大括号 '{'

DECLARE result_str VARCHAR(255) DEFAULT '';

#声明返回值对象,类型 ,长度 ,默认值

SET result_str =SUBSTRING(MD5(RAND()),32-strlen,strlen);

#设置返回值对象的值 方式1中简单粗暴的函数

RETURN result_str;

#返回 结果对象 这里的是 return

END

# 结束标识 相当于 '}'

3.自定义函数直接上代码

每一句的实现就不解释了,可以参加方式2中的代码解释看一下

DROP FUNCTION IF EXISTS rand_str;

create FUNCTION rand_str(strlen SMALLINT ) RETURNS VARCHAR(255)

BEGIN

DECLARE randStr VARCHAR(255) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';

DECLARE i SMALLINT DEFAULT 0;

DECLARE resultStr VARCHAR(255) DEFAULT '';

WHILE i

SET resultStr=CONCAT(SUBSTR(randStr,FLOOR(RAND()*LENGTH(randStr))+1,1),resultStr);

SET i=i+1;

END WHILE;

RETURN resultStr;

END

mysql数据自定义随机_Mysql 自定义随机字符串相关推荐

  1. mysql动态函数库_mysql自定义函数与动态查询

    介绍下mysql自定义函数的例子,以及插入单引号的方法,动态执行查询与字符串拼接的相关内容. 1.mysql自定义函数的例子 mysql不能像oracle 一样写 动态SQL. 代码示例: DROP ...

  2. rds支持mysql自带函数吗_MySQL自定义函数(CREATE FUNCTION)

    在使用MySQL的过程中,MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数.自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由 SQL 语句和过程式 ...

  3. mysql判断纯数字_MYSQL中判断字符串是否为纯数字

    今天下午产品的需求中要求要把一个数据库字段类型是text类型,但是字段里面的字段值是纯数字的记录找出来做统计使用,开始觉得不能够实现,后面网上查了一下,最后按照产品的要求做出来了,但是实现的过程中出现 ...

  4. mysql数据排序指令_MySQL 排序 | 菜鸟教程

    MySQL 排序 我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据. 如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段 ...

  5. linux成功mysql数据直接拷贝_mysql数据库数据从一个linux系统移植到另一个linux系统的方法...

    背景 问题介绍 现在有一个linux系统的机器上数据需要移植到另外一个linux系统上.老机器称A机器,新机器称B机器. 前期调研 鉴于网上资料很多都是相同内容,而数据库的数据一般都很重要,这些方法都 ...

  6. mysql数据表操作_MySQL数据表基本操作实例详解

    本文实例讲述了MySQL数据表基本操作.分享给大家供大家参考,具体如下: 数据表的基本操作 1.主键约束要求主键列的数据唯一,并且不允许为空.主键能够唯一地识别表中的一条记录,可以结合外键来定义不同数 ...

  7. mysql 数据表内容_mysql数据库内容相关操作

    第一:介绍 mysql数据内容的操作主要是: INSERT实现数据的插入 UPDATE实现数据的更新 DLETE实现数据的删除 SELECT实现数据的查询. 第二:增(insert) 1.插入完整的数 ...

  8. mysql 定一个函数_mysql自定义函数

    mysql中的UDF(自定义函数),其实是个好东西,比如可以写好一些方法或 函数,然后进行调用,而且是在SQL语句中可以进行调用. DROP FUNCTION CalculateAmount CREA ...

  9. mysql 插入指定值_mysql实现随机把字段值插入指定表

    今天在一个群里,一个小伙伴问了一个问题,mysql怎么随机把字母A或者B插入到表中的某个字段中去 案例如下: INSERT INTOt_rand(sex)VALUES(ELT(CEILING(rand ...

最新文章

  1. TCP/IP和OSI4层、7层协议介绍
  2. python 显示html_如何使用python在本地显示带有html表单的网...
  3. [c#]Dll自定义目录
  4. php自动维护,完全禁用关闭Windows Server 2012R2自动维护功能禁用WIN2012R2自动维护
  5. 牛客多校7 - A National Pandemic(树链剖分+线段树)
  6. XCTF-MISC-新手区-掀桌子
  7. why Material request downlaod get an empty BDOC in SMW01 - structure MGV_TLMNR
  8. 本地方法(JNI)——调用 java 方法
  9. unity 是厘米还是米_乔丹19岁才1.75米,2年增高近20公分,这个长高方法你能坚持多久...
  10. 灰色预测模型matlab_Matlab数据分析,2020研究生报名人数灰色预测
  11. 实现横向排列的几种方案
  12. 20171001~08总结
  13. 纯JS实现简易扫雷小游戏网页项目
  14. 瑞星2008序列号正确号码
  15. Python的GUI图形界面工具大全
  16. 饱和和非饱和激活函数
  17. JavaEE_Swagger
  18. php开发地图导航,百度地图API使用方法详解
  19. iphone4s更换电池_更换iPhone电池有多困难?
  20. 请教各位仁兄 ,如何给delphi7增加gdi+的功能?

热门文章

  1. iOS中的UIScrollView(滑动视图)
  2. nmap入门之主机发现
  3. 原生 js前端路由系统实现3之代码 构建工具 和 querystring功能
  4. Android 5.0 API 的变化——开发人员注意
  5. Tomcat安装与环境变量的配置-Linux+windows
  6. mybatis3 添加ehcache支持
  7. oracle实例与数据库
  8. java 注释快捷打出时间_Java快捷---自动注释时间作者。。。
  9. 自旋锁和互斥锁实例_多线程编程之自旋锁
  10. web 前端 如何分享到instagram_如何找到靠谱的Web培训机构?web前端培训机构哪个好?...