循环方式一:

DELIMITER :;

drop function if exists test.fn_test:;

create function test.fn_test()

returns varchar(32)
begin

declare temp varchar(36) default 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
declare str varchar(32) default '';
declare i int default 0;
declare len int;

while i < 32 do
set i = i + 1;
set len = CEIL(RAND() * 36);
set str = CONCAT(str, SUBSTRING(temp, len, 1));
end while;

return str;
end:;

DELIMITER;

select fn_test();

循环方式二:

DELIMITER :;

drop function if exists test.fn_test:;

create function test.fn_test()

returns varchar(32)
begin

declare temp varchar(36) default 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
declare str varchar(32) default '';
declare i int default 0;
declare len int;

loop_lable:LOOP

if(i >= 32) then
    leave loop_lable;
end if;
set i = i + 1;

set len = CEIL(RAND() * 36);
set str = CONCAT(str, SUBSTRING(temp, len, 1));
end LOOP;

return str;
end:;

DELIMITER;

select fn_test();

 循环方式三:

DELIMITER :;

drop function if exists test.fn_test:;

create function test.fn_test()

returns varchar(32)
begin

declare temp varchar(36) default 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
declare str varchar(32) default '';
declare i int default 0;
declare len int;

REPEAT set i = i + 1;

set len = CEIL(RAND() * 36);
set str = CONCAT(str, SUBSTRING(temp, len, 1));

until i >= 32 end REPEAT;

return str;
end:;

DELIMITER;

select fn_test();

 

相关文章:

  • 2021-12-21
  • 2021-05-31
  • 2022-02-26
  • 2022-01-12
  • 2021-08-02
  • 2021-08-03
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-17
  • 2021-11-29
  • 2021-04-03
  • 2021-08-18
相关资源
相似解决方案