php mysql 随机字符串_MySQL_Mysql 自定义随机字符串的实现方法,前几天在开发一个系统,需要 - phpStudy...

本文介绍了在MySQL中如何通过结合内置函数创建自定义的随机字符串。方法包括使用MD5和RAND()函数的组合,以及创建一个自定义函数rand_str,该函数可以根据传入的长度生成指定长度的随机字符串。此外,还展示了如何包装这个函数以提高代码复用性。
摘要由CSDN通过智能技术生成

Mysql 自定义随机字符串的实现方法

前几天在开发一个系统,需要用到随机字符串,但是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 自定义随机字符串的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对phpstudy网站的支持!相关阅读:

JS使用oumousemove和oumouseout动态改变图片显示的方法

用JavaScript动态建立或增加CSS样式表的实现方法

JavaScript设置body高度为浏览器高度的方法

html5 worker 实例(二) 图片变换效果

IOS中手风琴表不能移动的解决方法

安装Fedora作为工作环境后的一些配置建议

window.print打印指定div指定网页指定区域的方法

jQuery实现自动输入email、时间和域名的方法

C#解析json字符串总是多出双引号的原因分析及解决办法

CSS 文本字体颜色设置方法(CSS color)

csshover.htc在IE7下使用:active伪类无效解决方法

在Ubuntu上安装消息传递接口Open MPI库的教程

深度探究C++中的函数重载的用法

Win10系统如何电脑关闭系统还原以减少磁盘占用空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值