Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4178932
  • 博文数量: 240
  • 博客积分: 11504
  • 博客等级: 上将
  • 技术积分: 4277
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-28 14:24
文章分类

全部博文(240)

分类: Mysql/postgreSQL

2012-05-30 13:55:37

以前我写过一篇。
http://blog.chinaunix.net/uid-259788-id-2139370.html

这次把大写字母加了进去,并做了写修改。

点击(此处)折叠或打开

  1. DELIMITER $$

  2. USE `t_girl`$$

  3. DROP FUNCTION IF EXISTS `func_rand_string`$$

  4. CREATE DEFINER=`root`@`localhost` FUNCTION `func_rand_string`(f_num TINYINT UNSIGNED,f_type TINYINT UNSIGNED) RETURNS VARCHAR(32) CHARSET utf8
  5. BEGIN
  6.       -- Translate the number to letter.
  7.       -- No 1 stands for string only.
  8.       -- No 2 stands for number only.
  9.       -- No 3 stands for combination of the above.
  10.       DECLARE i INT UNSIGNED DEFAULT 0;
  11.       DECLARE v_result VARCHAR(255) DEFAULT '';
  12.       WHILE i < f_num DO
  13.         IF f_type = 1 THEN
  14.           SET v_result = CONCAT(v_result,CHAR(65+32*(CEIL(RAND()*2)-1)+CEIL(RAND()*25)));
  15.         ELSEIF f_type=2 THEN
  16.           SET v_result = CONCAT(v_result,CEIL(RAND()*9));
  17.         ELSEIF f_type=3 THEN
  18.           IF (CEIL(RAND()*2)-1) = 1 THEN
  19.             SET v_result = CONCAT(v_result,SUBSTRING(REPLACE(UUID(),'-',''),i+1,1));
  20.           ELSE
  21.             SET v_result = CONCAT(v_result,UPPER(SUBSTRING(REPLACE(UUID(),'-',''),i+1,1)));
  22.           END IF;
  23.         END IF;
  24.         SET i = i + 1;
  25.       END WHILE;
  26.       RETURN v_result;
  27.     END$$

  28. DELIMITER ;


调用方法类似。
阅读(2643) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~