Mysql使用函數生成指定隨機字段內容


Mysql使用函數生成指定隨機字段內容。

函數rand_name生成隨機字符串:

 1 drop function if exists rand_name;
 2 delimiter //
 3 -- 生成用戶姓名
 4 create definer=`root`@`192.168.1.244` function `rand_name`(n int) returns varchar(255) charset utf8
 5 begin
 6     declare char_str varchar(255) default '哈哈章與張霞笑小歐由於語塔堆太湖想笑一二三四五六七八九十宇宇你是最耀眼的星星再干一杯永遠生命不過短暫的煙火愛你所愛無問西東';
 7     declare return_name varchar(255) default '';
 8     declare i int default 0;
 9     while i < n do
10         set return_name = concat(return_name, substring(char_str, floor(1+rand()*30),1));
11         set i = i + 1;
12     end while;
13     return return_name;
14 end//
  delimiter ;

 

函數get_phone生成電話號碼,函數phone_head用於生成電話號碼頭部,利用函數rand_string生成號碼后8位:

 

 1 -- 生成電話號碼
 2 drop function if exists `phone_head`;
 3 delimiter //
 4 create definer=`root`@`192.168.1.243`  function `phone_head`() returns char(3) charset utf8
 5 begin
 6     declare head char(3);
 7     declare bodys varchar(225) default'130 131 132 133 134 135 136 137 138 139 186 187 189 151 157';
 8     declare starts int;
 9     set starts = 1 + floor(rand()*15)*4 ;
10     set head =trim(substring(bodys,starts,3));
11     return head;
12 end//
13 delimiter ;
14 
15 -- 生成隨機數字串
16 drop function if exists `rand_string`;
17 delimiter //
18 create definer=`root`@`192.168.1.243` function `rand_string`(n int) returns varchar(255) charset utf8
19 begin
20     declare char_str varchar(255) default '0123456789';
21     declare return_str varchar(255) default '';
22     declare i int default 0; 
23     while i < n do
24         set return_str=concat(return_str,substring(char_str,floor(1+rand()*10),1));
25         set i=i+1;
26     end while;
27     return return_str;
28 end //
29 delimiter ;
30 
31 drop function if exists `get_phone`;
32 delimiter //
33 create definer=`root`@`192.168.1.243` function `get_phone`() returns varchar(20) charset utf8
34 begin
35     declare phone varchar(20);
36     set phone = trim(concat(phone_head(),rand_string(8)));
37     return phone;
38 end //
39 delimiter ;

 

 

 

函數randDate生成指定年份之間的任意年份:

 

 1 -- 隨機生成一個1949年到1999之間的日期
 2 drop function if exists `randDate`;
 3 delimiter //
 4 create definer=`root`@`192.168.1.243` function `randDate`(n year) returns varchar(255) charset utf8
 5 begin
 6     declare aDate char(10) default '';
 7     set aDate=concat(n+floor((rand()*50)),'-',
 8                     lpad(floor(2 + (rand() * 11)),2,0),'-',
 9                     lpad(floor(3 + (rand() * 20)),2,0));
10     return aDate;
11 end//
12 delimiter ;

 

 

 

函數randDatetime生成任意時間點:

 

 1 -- 函數randDatetime:隨機生成一個時間點函數
 2 drop function if exists `randDatetime`;
 3 delimiter //
 4 create definer=`root`@`192.168.1.243` function `randDatetime`(n year, num int) returns varchar(255) charset utf8
 5 begin
 6     declare aDatetime varchar(255) default '';
 7     set aDatetime=concat(concat(n+floor((rand()*num)),'-',
 8                     lpad(floor(2 + (rand() * 11)),2,0),'-',
 9                     lpad(floor(3 + (rand() * 25)),2,0)),
10                     ' ',
11                     concat(lpad(floor(0 + (rand() * 23)),2,0),':',
12                     lpad(floor(0 + (rand() * 60)),2,0),':',
13                     lpad(floor(0 + (rand() * 60)),2,0)));
14     return aDatetime;
15 end//
16 delimiter ;

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM