您的位置:首页 > 数据库 > MySQL

用MySQL 生成随机密码-增加大写处理

2012-05-30 14:02 253 查看
以前写过:
http://blog.chinaunix.net/uid-259788-id-2139370.html
这次增加了大写字母的处理。

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 ;


调用方法类似。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: