例子,mysql生成随机密码,大写字母加了进去,并做了一些修改。
代码:
delimiter $$
use `t_girl`$$
drop function if exists `func_rand_string`$$
create definer=`root`@`localhost` function `func_rand_string`(f_num tinyint unsigned,f_type tinyint unsigned) returns varchar(32) charset utf8
begin
-- translate the number to letter.
-- no 1 stands for string only.
-- no 2 stands for number only.
-- no 3 stands for combination of the above.
declare i int unsigned default 0;
declare v_result varchar(255) default '';
while i < f_num do
if f_type = 1 then
set v_result = concat(v_result,char(65+32*(ceil(rand()*2)-1)+ceil(rand()*25)));
elseif f_type=2 then
set v_result = concat(v_result,ceil(rand()*9));
elseif f_type=3 then
if (ceil(rand()*2)-1) = 1 then
set v_result = concat(v_result,substring(replace(uuid(),'-',''),i+1,1));
else
set v_result = concat(v_result,upper(substring(replace(uuid(),'-',''),i+1,1)));
end if;
end if;
set i = i + 1;
end while;
return v_result;
end$$
delimiter ;