用MySQL 产生随机密码

晚上有朋友问起,简单的写了一个。

DELIMITER $$

CREATE
    FUNCTION `t_girl`.`func_rand_string`(f_num tinyint unsigned,f_type tinyint unsigned)
    RETURNS varchar(32)
    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(97+ceil(rand()*25)));
        elseif f_type=2 then
          set v_result = concat(v_result,char(48+ceil(rand()*9)));
        elseif f_type=3 then
          set v_result = concat(v_result,substring(replace(uuid(),’-',”),i+1,1));
        end if;
        set i = i + 1;
      end while;
      return v_result;

    END$$

DELIMITER ;

调用方法示例:

select func_rand_string(12,3);

觉得文章有用?立即: 和朋友一起 共学习 共进步!

猜您喜欢

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>