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 ;