mysql 函数 生成校验码

drop function if exists test.get_scan_code;
delimiter $
create function `test`.`get_scan_code`(as_code varchar(128))  
returns VARCHAR(128)
begin
declare ls_rc VARCHAR(255) DEFAULT '';
declare ls_checkcode VARCHAR(255) DEFAULT '';
declare A,B,C,D,E int default 0;  
declare J,K int ;  
declare X int ;  
declare ls_tmp varchar(128) ;  


  set as_code=trim(as_code);
  set K = 1;
  set X = LENGTH(as_code);
  set J = X;
  WHILE J >= 1 DO   
set K = K + 1 ;
set ls_tmp = mid(as_code,J,1);
If mod(K,2)=0 Then
set A = A + (ls_tmp + 0);
ElseIf K>2 and mod(K,2)=1 Then
set C = C + (ls_tmp + 0);
End If;
set J = J - 1;
  end while ;
  
  set B = A * 3;
  set D = B + C;
  set E = 10 - mod(D,10);
  set ls_checkcode = CAST(E AS CHAR);
  set ls_rc = CONCAT(as_code,ls_checkcode);
  return ls_rc; 


end$
delimiter
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值