MySQL随机字符串函数
MySQL随机字符串函数是我们经常会用到的函数,下面就为您详细介绍该函数的语法,如果您对MySQL随机字符串函数感兴趣的话,不妨一看。
1 DROP FUNCTION IF EXISTS rand_string; 2 delimiter // 3 CREATE FUNCTION rand_string(l_num tinyint UNSIGNED,l_type tinyint UNSIGNED) 4 RETURNS varchar(127) 5 BEGIN 6 -- Function : rand_string 7 -- Author : dbachina#dbachina.com 8 -- Date : 2010/5/30 9 -- l_num : The length of random string 10 -- l_type: The string type 11 -- 1.0-9 12 -- 2.a-z 13 -- 3.A-Z 14 -- 4.a-zA-Z 15 -- 5.0-9a-zA-Z 16 -- <for example> : 17 -- mysql> select rand_string(12,5) random_string; 18 -- +---------------+ 19 -- | random_string | 20 -- +---------------+ 21 -- | 3KzGJCUJUplw | 22 -- +---------------+ 23 -- 1 row in set (0.00 sec) 24 DECLARE i int UNSIGNED DEFAULT 0; 25 DECLARE v_chars varchar(64) DEFAULT ‘0123456789‘; 26 DECLARE result varchar ( 255) DEFAULT ‘‘; 27 28 IF l_type = 1 THEN --设置随机字符串可以包含的字符类型 29 SET v_chars = ‘0123456789‘; 30 ELSEIF l_type = 2 THEN 31 SET v_chars = ‘abcdefghijklmnopqrstuvwxyz‘; 32 ELSEIF l_type = 3 THEN 33 SET v_chars = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘; 34 ELSEIF l_type = 4 THEN 35 SET v_chars = ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘; 36 ELSEIF l_type = 5 THEN 37 SET v_chars = ‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘; 38 ELSE 39 SET v_chars = ‘0123456789‘; 40 END IF; 41 42 WHILE i < l_num DO 43 SET result = concat( result,substr(v_chars,ceil(rand()*(length(v_chars)-1)),1) ); --使用递归函数,每次从v_chars中随机取出一个字符,存入result 44 SET i = i + 1; 45 END WHILE; 46 RETURN result; 47 END; 48 // 49 delimiter ;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。