已知表stringcontent
其中字段
id 自增长
content varchar(20)
建表语句:
create table stringcontent(
id int primary key auto_increment,
content varchar(20)
);
创建存储过程并且执行操作
create procedure test_randstr_insert(in insertCount int)
begin
declare i int default 1;# 定义一个循环变量i,表示插入次数
declare str varchar(26) default 'abcdefghijklmnopqrstuvwxyz';
declare startIndex int default 1; # 代表起始索引
declare len int default 1 # 代表截取的字符的长度
while i<=insertCount Do
set len = floor(rand()*(20-startIndex+1)) #产生一个随机的整数,代表 截取长度 (20-startIndex+1)
set startIndex = floor(rand()*26+1);# 产生一个随机的整数,代表起始索引1-26
insert into stringcontent(content) values(substr(str,startIndex,len));
set i = i+1;
end while;
end
call test_randstr_insert(10);
select * from content;
注意:substr 是字符截取函数
举例:
mysql> select substr('helloworld',5,3);
+--------------------------+
| substr('helloworld',5,3) |
+--------------------------+
| owo |
+--------------------------+
1 row in set (0.00 sec)
含义:
5:从头开始取,取第五个字母
3:从第五个字母开始,取三个字母