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
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于