IT科技

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

时间:2010-12-5 17:23:32  作者:应用开发   来源:系统运维  查看:  评论:0
内容摘要:复制DROPFUNCTIONIFEXISTSrand_string; delimiter// CREATEFUNCTIONrand_string(l_n

带您了解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.
copyright © 2025 powered by 编程之道  滇ICP备2023006006号-34sitemap