drop function if exists rand_str;
delimiter $$
create function rand_str(size int,ran_type int) returns varchar(256) charset 'utf8'
begin
# 定义接收初始化类型
declare seed varchar(255) ;
# 定义初始化数字
declare seed_numbers varchar(20) default '1234567890';
# 定义初始化字母 不使用小写的原件是因为0和O 1和l 区分不出
declare seed_letter varchar(20) default 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
# 定义返回字符串
declare return_seed varchar(255) default '';
# 定义循环次数
declare i int default 0;
#进行设置类型 case 根据ran_type进行判断使用哪个初始化
set seed=case ran_type
#如果ran_type为1时 返回初始化数字
when 1 then seed_numbers
#如果ran_type为2时 返回初始化字母
when 2 then seed_letter
#否则 返回初始化数字+初始化字母
else concat(seed_letter,seed_numbers)
end;
# 进行循环
while i<size do
# 设置return_seed=return_seed+随机初始化
set return_seed=concat(return_seed,substring(seed,floor(rand()*length(seed)+1),1));
# 进行i+1;
set i=i+1;
end while;
return return_seed;
end ;
delimiter ;