我简化了步骤, 比之前的更加简洁,常规生成随机密码。

 

 

  1. DELIMITER $$ 
  2.  
  3. USE `t_girl`$$ 
  4.  
  5. DROP FUNCTION IF EXISTS `func_range_string_mod`$$ 
  6.  
  7. CREATE DEFINER=`root`@`localhost` FUNCTION `func_range_string_mod`( 
  8.     f_num INT UNSIGNED -- Total strings. 
  9.     ) RETURNS VARCHAR(200) CHARSET latin1 
  10. BEGIN 
  11.      
  12.       DECLARE i INT UNSIGNED DEFAULT 0;  
  13.       DECLARE v_result VARCHAR(200) DEFAULT '';  
  14.       DECLARE v_dict VARCHAR(200) DEFAULT ''
  15.       SET v_dict = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
  16.       SET v_dict = LPAD(v_dict,200,v_dict); 
  17.       WHILE i < f_num  
  18.       DO  
  19.     SET v_result = CONCAT(v_result,SUBSTR(v_dict,CEIL(RAND()*200),1)); 
  20.         SET i = i + 1;  
  21.       END WHILE;   
  22.       RETURN v_result;  
  23.     END$$ 
  24.  
  25. DELIMITER ; 

 

调用方法:

 

select func_range_string_mod(20); 代表需要生成20个字符长度的密码。