mysql随机字符串函数

 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 ;

 

posted @ 2018-09-19 11:07  韦邦杠  阅读(1497)  评论(0编辑  收藏  举报