带您了解MySQL随机字符串函数

复制DROP FUNCTION IF EXISTS rand_string; delimiter // CREATE FUNCTION rand_string(l_num tinyint UNSIGNED,机字l_type tinyint UNSIGNED) RETURNS varchar(127) BEGIN -- Function : rand_string -- Author : dbachina#dbachina.com -- Date : 2010/5/30 -- l_num : The length of random string -- l_type: The string type -- 1.0-9 -- 2.a-z -- 3.A-Z -- 4.a-zA-Z -- 5.0-9a-zA-Z -- <for example> : -- mysql> select rand_string(12,5) random_string; -- +---------------+ -- | random_string | -- +---------------+ -- | 3KzGJCUJUplw | -- +---------------+ -- 1 row in set (0.00 sec) DECLARE i int UNSIGNED DEFAULT 0; DECLARE v_chars varchar(64) DEFAULT 0123456789; DECLARE result varchar ( 255) DEFAULT ; IF l_type = 1 THEN SET v_chars = 0123456789; ELSEIF l_type = 2 THEN SET v_chars = abcdefghijklmnopqrstuvwxyz; ELSEIF l_type = 3 THEN SET v_chars = ABCDEFGHIJKLMNOPQRSTUVWXYZ; ELSEIF l_type = 4 THEN SET v_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ; ELSEIF l_type = 5 THEN SET v_chars = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ; ELSE SET v_chars = 0123456789; END IF; WHILE i <l_num DO SET result = concat( result,substr(v_chars,ceil(rand()*(length(v_chars)-1)),1) ); SET ii = i + 1; END WHILE; RETURN result; END; // delimiter ; 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.
本文地址:http://www.bhae.cn/html/977d6698956.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。