mysql 数据库实现 BKDR 散列算法(java 字符串采用该散列算法)
DELIMITER //
create function t(in_str VARCHAR(255))
returns int
begin
declare i int;
declare l int;
declare min_int int;
declare max_int int;
declare r int;
set i = 1;
set r = 0;
set min_int = -2147483648;
set max_int = 2147483647;
select CHAR_LENGTH(in_str) into l;
if l < 1
then return(0);
end if;
while i <= l do
set r = overflow(31 * r + ASCII(substring(in_str, i, 1)));
set i=i+1;
end while;
return(r);
end
//
DELIMITER ;
overflow()函数请参考 https://hacpai.com/article/1473754495768
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于