mysql如何生成随机字符串,mysql随机字符串生成函数

发布时间:2021-01-16编辑:脚本学堂
mysql生成随机字符串的函数,mysql随机生成固定长度字符串的方法,在mysql中随机生成数字或字符串,随机生产数字可直接使用rand()函数,生成随机字符串的自定义函数代码。

mysql生成随机字符串函数
 

复制代码 代码示例:
set global log_bin_trust_function_creators = 1;
drop function if exists rand_string;
delimiter $$
create function rand_string(n int)
returns varchar(255)
begin
    declare chars_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789';
    declare return_str varchar(255) default '';
    declare i int default 0;
    while i < n do
        set return_str = concat(return_str,substring(chars_str , floor(1 + rand()*62 ),1));
        set i = i +1;
    end while;
    return return_str;
end $$
delimiter ;
 

经测试,函数创建后与当前数据库绑定,下面语句可以查看函数相关信息。
 

show function status where db='database_name';

mysql中随机生成固定长度字符串的方法

在mysql中随机生成数字或字符串,随机生产数字可直接使用rand()函数,但随机生成字符串会麻烦一些,需要自定义函数来实现。

随机生成字符串代码:

在mysql中定义一个随机串的方法,然后再sql语句中调用此方法。

随机串函数定义方法:
 

复制代码 代码示例:
create definer=`root`@`localhost` function `rand_string`(n int) returns varchar(255) charset latin1
begin
declare chars_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789';
declare return_str varchar(255) default '';
declare i int default 0;
while i < n do
set return_str = concat(return_str,substring(chars_str , floor(1 + rand()*62 ),1));
set i = i +1;
end while;
return return_str;
end;

调用随机串函数方法:
 

update demotable set demoname=rand_string(32) where id>23