【转】MySQL随机字符串生成
2015-10-22 17:27
651 查看
DROP FUNCTION IF EXISTS rand_string; DELIMITER $$ CREATE FUNCTION rand_string(str_length TINYINT UNSIGNED, str_type TINYINT UNSIGNED) RETURNS VARCHAR(255) BEGIN -- Function : rand_string -- Author : reymondtu#opencfg.com -- Date : 2011/03/27 -- Params : str_length int unsigned -- The random string length of random string -- str_type int unsigned -- The random string type -- 1.0-9 -- 2.a-z -- 3.A-Z -- 4.a-zA-Z -- 5.0-9a-zA-Z -- -- Example : -- -- mysql> select rand_string(32,5) from dual; -- +----------------------------------+ -- | rand_string(32,5) | -- +----------------------------------+ -- | HbPBz4DWSAiJNLt4SgExHVwQI34bI6mt | -- +----------------------------------+ -- 1 row in set DECLARE counter INT UNSIGNED DEFAULT 0; DECLARE const_chars VARCHAR(64) DEFAULT '0123456789'; DECLARE result VARCHAR(255) DEFAULT ''; IF str_type = 1 THEN SET const_chars = '0123456789'; ELSEIF str_type = 2 THEN SET const_chars = 'abcdefghijklmnopqrstuvwxyz'; ELSEIF str_type = 3 THEN SET const_chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; ELSEIF str_type = 4 THEN SET const_chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; ELSEIF str_type = 5 THEN SET const_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; ELSE SET const_chars = '0123456789'; END IF; WHILE counter < str_length DO SET result = CONCAT(result,SUBSTR(const_chars,CEIL(RAND()*(LENGTH(const_chars)-1)),1)); SET counter = counter + 1; END WHILE; RETURN result; END ; $$ DELIMITER ;
转自:http://tuhaitao.iteye.com/blog/976936
相关文章推荐
- Windows Server 2003 下配置 MySQL 群集(Cluster)
- MySQL RESET MASTER与RESET SLAVE
- MySQL使用中的一些方法与技巧
- 2套mysql主从互切脚本
- MySQL 表锁以及FLUSH TABLES操作
- mysql c
- MySQL中general log使用
- JDBC-连接mysql查询数据时中文为空解决办法
- MySQL中数据库重命名
- MySQL UPDATE语句中的一个诡异现象
- MySQL中一些查看事务和锁情况的常用语句
- [转]MYSQL 查询优化
- mysql left( right ) join使用on 与where 筛选的差异
- MySQL NOT EXISTS优化的一个案例
- MySQL和MySQLi的区别
- MySQL DECIMAL数据类型
- 拯救mysql单表数据
- mysql 参数作用域
- [MySQL优化案例]系列 — 优化InnoDB表BLOB列的存储效率
- mysql InnoDB引擎 共享表空间和独立表空间(转载)