生成随机手机号码
函数:generateRandomPhone()
手机号前三位:132,133,139,183,186,187,130,131,189,151,156,157,176,134,135,137,138,136,000
使用示例:select generateRandomPhone()
返回随机手机号码
drop FUNCTION if exists generateRandomPhone;
CREATE FUNCTION `generateRandomPhone`() RETURNS char(11)
DETERMINISTIC
BEGIN
# 手机号前三位
DECLARE head VARCHAR(100) DEFAULT '132,133,139,183,186,187,130,131,189,151,156,157,176,134,135,137,138,136,000';
# 手机号后八位由0到9任意数字拼凑而成
DECLARE content CHAR(10) DEFAULT '0123456789';
# 初始化手机号phone为xxx,其中xxx基于手机号前三位head使用func_splitString函数获取
DECLARE phone CHAR(20) DEFAULT func_splitString(head, ',', FLOOR(1 + RAND() * 19));
# 初始化循环次数为1
DECLARE i int DEFAULT 1;
# 当次数少于9时循环拼凑phone
WHILE i<9 DO
SET i=i+1;
SET phone = CONCAT(phone, substring(content, floor(1 + RAND() * 10), 1));
END WHILE;
# 返回phone
RETURN phone;
END
字符串分隔选取
函数:splitString (str VARCHAR (1000), delimiter VARCHAR (5), str_order INT)
str
:待分隔字符串
delimiter
:字符串分隔符
str_order
:字符串分隔后索引
使用示例:
select splitString('this;is;test;string;for;split', ';', 3)
返回test
select splitString('this is test string for split', ' ', 5)
返回for
drop FUNCTION if exists splitString;
CREATE FUNCTION `splitString` (
str VARCHAR (1000),
delimiter VARCHAR (5),
str_order INT
) RETURNS VARCHAR (255) CHARSET utf8
BEGIN
DECLARE result VARCHAR (255) DEFAULT '';
SET result = reverse(
substring_index(
reverse(
substring_index(
str,
delimiter,
str_order
)
),
delimiter,
1
)
);
RETURN result;
END
生成随机中文名
函数:generateRandomUsername()
使用示例:select generateRandomUsername()
返回随机中文名(姓名长度在2-4间)
drop FUNCTION if exists generateRandomUsername;
CREATE FUNCTION `generateRandomUsername`() RETURNS varchar(255)
DETERMINISTIC
BEGIN
DECLARE first_name VARCHAR(2056) DEFAULT '赵钱孙李周郑王冯陈楮卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闽席季麻强贾路娄危江童颜郭梅盛林刁锺徐丘骆高夏蔡田樊胡凌霍虞万支柯昝管卢莫经裘缪干解应宗丁宣贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁';
DECLARE last_name VARCHAR(2056) DEFAULT '嘉懿煜城懿轩烨伟苑博伟泽熠彤鸿煊博涛烨霖烨华煜祺智宸正豪昊然明杰诚立轩立辉峻熙弘文熠彤鸿煊烨霖哲瀚鑫鹏致远俊驰雨泽烨磊晟睿天佑文昊修洁黎昕远航旭尧鸿涛伟祺轩越泽浩宇瑾瑜皓轩擎苍擎宇志泽睿渊楷瑞轩弘文哲瀚雨泽鑫磊梦琪忆之桃慕青问兰尔岚元香初夏沛菡傲珊曼文乐菱痴珊恨玉惜文香寒新柔语蓉海安夜蓉涵柏水桃醉蓝春儿语琴从彤傲晴语兰又菱碧彤元霜怜梦紫寒妙彤曼易南莲紫翠雨寒易烟如萱若南寻真晓亦向珊慕灵以蕊寻雁映易雪柳孤岚笑霜海云凝天沛珊寒云冰旋宛儿绿真盼儿晓霜碧凡夏菡曼香若烟半梦雅绿冰蓝灵槐平安书翠翠风香巧代云梦曼幼翠友巧听寒梦柏醉易访旋亦玉凌萱访卉怀亦笑蓝春翠靖柏夜蕾冰夏梦松书雪乐枫念薇靖雁寻春恨山从寒忆香觅波静曼凡旋以亦念露芷蕾千兰新波代真新蕾雁玉冷卉紫山千琴恨天傲芙盼山怀蝶冰兰山柏翠萱乐丹翠柔谷山之瑶冰露尔珍谷雪乐萱涵菡海莲傲蕾青槐冬儿易梦惜雪宛海之柔夏青亦瑶妙菡春竹修杰伟诚建辉晋鹏天磊绍辉泽洋明轩健柏煊昊强伟宸博超君浩子骞明辉鹏涛炎彬鹤轩越彬风华靖琪明诚高格光华国源宇晗昱涵润翰飞翰海昊乾浩博和安弘博鸿朗华奥华灿嘉慕坚秉建明金鑫锦程瑾瑜鹏经赋景同靖琪君昊俊明季同开济凯安康成乐语力勤良哲理群茂彦敏博明达朋义彭泽鹏举濮存溥心璞瑜浦泽奇邃祥荣轩';
DECLARE first_name_len INT DEFAULT LENGTH(first_name);
DECLARE last_name_len INT DEFAULT LENGTH(last_name);
DECLARE name_len INT DEFAULT FLOOR(2+(RAND()*3))*3;
DECLARE name_str VARCHAR(32) DEFAULT SUBSTRING(first_name FROM FLOOR(1 + RAND() * first_name_len) FOR 1);
WHILE LENGTH(name_str) < name_len DO
SET name_str = CONCAT(name_str, SUBSTRING(last_name FROM FLOOR(1 + (RAND() * last_name_len)) FOR 1));
END WHILE;
RETURN CONCAT(name_str,name_len);
END
生成随机日期
函数:generateDate()
格式:年:月:日 时:分:秒
使用示例:select generateDate()
返回随机日期
drop FUNCTION if exists generateDate;
CREATE FUNCTION `generateDate`() RETURNS varchar(255)
DETERMINISTIC
BEGIN
DECLARE random_date VARCHAR (20) DEFAULT '';
SET random_date = CONCAT(
(SELECT
DATE(FROM_UNIXTIME(
UNIX_TIMESTAMP('2020-01-01') + FLOOR(
RAND() * (
UNIX_TIMESTAMP('2050-12-31') - UNIX_TIMESTAMP('2020-01-01') + 1
)
)
)
) AS DATE
), ' ', FLOOR(RAND() * 25), ':', FLOOR(RAND() * 60), ':', FLOOR(RAND() * 60)
);
RETURN random_date;
END